Wenn Du das Datum als String vorliegen hast, bietet sich TryStrToDate an. Dann würde ich nicht daraus einen Datumsstring zusammenbasteln und dann prüfen, sondern die Elemente einzeln prüfen. Das ist wie links blinken und rechts abbiegen
Mit Deiner Funktion bekommst Du bei einem Englischen Windows Probleme.
Ich würde die Elemente einzeln prüfen:
Delphi-Quellcode:
//Gültigkeitsbereich 1.1.0001 ... 31.12.9999
function IsDateOk(d,m,y:integer):boolean;
begin
if (y < 1) or (y > 9999) then
result := False
else if (m < 1) or (m > 12) then
result := false
else if (d < 1) or (d > DaysInAMonth(y, m)) then
result := false
else
result := True;
end;
(DateUtils muss für DaysInAMonth eingebunden werden)
Jens