Deel Sistemas
--------------------------------------------------------------------------------
Projeto.........: Sistema de emisso de carteira estudantil (Laercio)
Modulo..........: Biblio - Funcoes do sistema
Versao..........: 1.0
Compilacao......: xe 7
Ambientes.......: Windows 9X/NT
Ultima alteracao: 25/11/2015
Responsavel.....: Dorfino Pereira Salgado
-------------------------------------------------------------------------------}
unit Biblio;
interface
type
PString=^TString;
TString=type AnsiString;
EInvalidPeriod = Class(Exception);
implementation
uses UDMDados;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Procedure LimpaBarra(pStatusBarr:TStatusBar);
begin
with pStatusBarr do
begin
Panels[1].Text:=EmptyStr;
Panels[2].Text:=EmptyStr;
Panels[4].Text:=EmptyStr;
Panels[5].Text:=EmptyStr;
end;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Ano:=Ano2-Ano1;
Mes:=Mes2-Mes1;
Dia:=Dia2-Dia1;
if (Ano=0) then
Delete(Idade,1,1);
if (Dia>1) then
Idade:=Idade+' e '+IntToStr(Dia)+' Dias'
else if (Dia<>0) then
Idade:=Idade+' e '+IntToStr(Dia)+' Dia';
Result:=Idade;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
for I := 1 to Length(pTexto) do
Inc(vTot);
Result := vTot;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
n1 := StrToInt(num[1]);
n2 := StrToInt(num[2]);
n3 := StrToInt(num[3]);
n4 := StrToInt(num[4]);
n5 := StrToInt(num[5]);
n6 := StrToInt(num[6]);
n7 := StrToInt(num[7]);
n8 := StrToInt(num[8]);
n9 := StrToInt(num[9]);
d1 := n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
d1 := 11-(d1 mod 11);
d2 := d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
d2 := 11-(d2 mod 11);
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
d2 := d1*2+n12*3+n11*4+n10*5+n9*6+n8*7+n7*8+n6*9+n5*2+n4*3+n3*4+n2*5+n1*6;
d2 := 11-(d2 mod 11);
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
procedure GravaSemAcentos(DataSet:TDataSet);
var
I: Integer;
begin
for I := 0 to Pred(DataSet.FieldCount) do
begin
if (DataSet.Fields[I].FieldName = 'NOMECOMPUTADOR') or
(DataSet.Fields[I].FieldName = 'CAMINHO_PARAMETRO') or
(DataSet.Fields[I].FieldName = 'CAMINHO') then
Continue;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
function AlinhaCentro(const S: string; const Len: integer; const Ch: Char): string;
var
I, J: Integer;
Pad: String;
Impar: Boolean;
begin
I := Length(S);
if (Impar) then
Result := Result + Ch;
end else if (I > Len) then
begin
J := I - Len;
Impar := J mod 2 = 1;
J := J div 2;
Result := S;
if (Impar) then
begin
Dec(I, J * 2);
Delete(Result, I, 1);
end;
end else
Result := S;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
function AlinhaDireita(texto: string; const Len: integer): string;
var
LenS: Integer;
spaco: string;
I: Integer;
begin
LenS := Length(texto);
if (LenS < Len) then
for I := 1 to Length(texto) do
spaco := spaco + ' ';
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Closefile(f);
result := cont;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
if (pos=0) then
pos:=TamanhoChave;
if (posLetra=0) then
posLetra:=ord(Result[I]);
Result[I]:=chr(posLetra);
end;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Inc(x);
end;
end;
RemoveNumeroLetra := sTexto;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
except
TField(Retorno).FocusControl;
Application.MessageBox('Hora invlida. Verifique !!!', 'Ateno', MB_OK
+ MB_ICONINFORMATION);
Result := False;
end;
if HoraHora = 0 then
begin
TField(Retorno).Text := '00:01';
ValidaHora(Retorno);
end;
end;
end;
end;
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
//dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Key :=
'YUQL23KL23DF90WI5E1JAS467NMCXXL6JAOAUWWMCL0AOMM4A4VZYW9KHJUI2347EJHJKDF3424SKL
K3LAKDJSL9RTIKJ';
Dest := '';
KeyLen := Length(Key);
KeyPos := 0;
SrcPos := 0;
SrcAsc := 0;
Range := 256;
repeat
SrcAsc := StrToInt('$'+ copy(Src,SrcPos,2));
Result:= Dest;
Fim:
end;
// MASCARA DE TELEFONE
function MascaraTelefone(Edt:TDBEdit):TDBEdit;
begin
if Length(Edt.Text) = 1 then
begin
Edt.Text := '(' + Edt.Text;
Edt.Selstart := Length(Edt.Text);
end;
if Length(Edt.Text) = 3 then
begin
Edt.Text := Edt.Text + ')';
Edt.Selstart := Length(Edt.Text);
end;
if Length(Edt.Text) = 8 then
begin
Edt.Text := Edt.Text + '-';
Edt.Selstart := Length(Edt.Text);
end;
Result:=Edt;
end;
// MASCARA DE CPF
function MascaraCPF(Edt:TDBEdit):TDBEdit;
begin
if Length(Edt.Text) = 3 then
begin
Edt.Text := Edt.Text + '.';
Edt.Selstart := Length(Edt.Text);
end;
if Length(Edt.Text) = 7 then
begin
Edt.Text := Edt.Text + '.';
Edt.Selstart := Length(Edt.Text);
end;
if Length(Edt.Text) = 11 then
begin
Edt.Text := Edt.Text + '-';
Edt.Selstart := Length(Edt.Text);
end;
Result:=Edt;
end;
if Length(Edt.Text) = 7 then
begin
Edt.Text := Edt.Text + '.';
Edt.Selstart := Length(Edt.Text);
end;
if Length(Edt.Text) = 11 then
begin
Edt.Text := Edt.Text + '-';
Edt.Selstart := Length(Edt.Text);
end;
Result:=Edt;
end;
Function testacpf(cpf:string):boolean;
var i:integer;
Want:char;
Wvalid:boolean;
Wdigit1,Wdigit2:integer;
begin
Wdigit1:=0;
Wdigit2:=0;
Want:=cpf[1];//variavel para testar se o cpf repetido como 111.111.111-11
Delete(cpf,ansipos('.',cpf),1); //retira as mascaras se houver
Delete(cpf,ansipos('.',cpf),1);
Delete(cpf,ansipos('-',cpf),1);
for i:=1 to 10 do
begin
wdigit2:=Wdigit2+(strtoint(cpf[11-i])*(I+1));
end;
Wdigit2:= ((11 - (Wdigit2 mod 11))mod 11) mod 10;
{formula do segundo verificador
soma=1*2+2*3+3*4.. at 10*11
digito1 = 11 - soma mod 11
se digito > 10 digito1 =0
}
end.