passar e receber valores para uma função

Delphi

24/06/2014

Amigos,
Baixei na net uma função que calcula idade entre data do nascimento e a data atual.

Estou precisando de ajuda para incluí-la no meu programa.

Na entrada de dados do cadastro, os campos Nome, endereço, ... data de nascimento, este por um DbEdit setado ao campo da tabela (formatado como __/__/____).

DÚVIDAS:

PRIMEIRO - Não sei como definir esta função na seção TYPE do form;

SEGUNDO - como incluir no evento OnExit do DbEdit os parâmetros DataIni, DataFim (que será a data do sistema)
procedure Tfrm_Alunos.DBEdit1Exit(Sender: TObject);
begin
((minha dúvida numero 2))
end;

TERCEIRO - como usar no componente Edit do meu form o retorno desta função.

Agradeço a ajuda.

att

gilberto

Function CalculaIdade(DataIni, DataFim : TDateTime) : string;
var Idade : String;
Resto : Integer;
iDia, iMes, iAno, fDia, fMes, fAno : Word;
nDia, nMes, nAno, DiaBissexto : Double;
begin
DecodeDate(DataIni,iAno,iMes,iDia);
DecodeDate(DataFim,fAno,fMes,fDia);
nAno := fAno - iAno;
if nAno > 0 then
if fMes < iMes then nAno := nAno - 1
else if(fMes = iMes)and(fDia < iDia)then nAno := nAno - 1;

if fMes < iMes then
begin
nMes := 12 - (iMes-fMes);
if fDia < iDia then nMes := nMes - 1;
end
else if fMes = iMes then
begin
nMes := 0;
if fDia < iDia then nMes := 11;
end
else if fMes > iMes then
begin
nMes := fMes - iMes;
if fDia < iDia then nMes := nMes - 1;
end;
nDia := 0;

if fDia > iDia then nDia := fDia - iDia;
if fDia < iDia then nDia := (DataFim-IncMonth(DataFim,-1))-(iDia-fDia);
Result := '';
if nAno = 1 then Result := FloatToStr(nAno)+ ' Ano '
else if nAno > 1 then Result := FloatToStr(nAno)+ ' Anos ';

if nMes = 1 then Result := Result + FloatToStr(nMes)+ ' Mês '
else if nMes > 1 then Result := Result + FloatToStr(nMes)+ ' Meses ';

if nDia = 1 then Result := Result + FloatToStr(nDia)+ ' Dia '
else if nDia > 1 then Result := Result + FloatToStr(nDia)+ ' Dias ';

end;
Gilberto Moreira

Gilberto Moreira

Curtidas 0
POSTAR