Wenn Du mit TDateTime-Werten rechnest, erhältst Du die Differenz in Tagen und müsstest noch alle Schaltjahre ermitteln, die zwischen den beiden Daten liegen. Ich würde das wohl eher mit TSystemTime machen, etwa so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var heute, GebDat: TSystemTime;
Alter: byte;
begin
DateTimeToSystemTime(now,heute);
DateTimeToSystemTime(StrToDateTime(Edit1.Text),GebDat);
Alter := heute.wYear - GebDat.wYear;
if heute.wMonth < GebDat.wMonth
then
dec(Alter)
else if (heute.wMonth = GebDat.wMonth)
and (heute.wDay < GebDat.wDay)
then
dec(Alter);
Edit2.Text := inttostr(Alter);
end;
Allerdings findet hier keine Fehlerbehandlung statt, die musst Du schon selbst implementieren.