Habe einen Tip der so ähnlich ist wie der von Stillmatic:
Teste einfach im OnExit-Event des Edit-Feldes ob Du mit StrToDate(edit1.text) einen Fehler bekommst. Falls ja -> ungültiges Datum. Dann kannst Du eine Message anzeigen. Da sparst Du Dir bei jedem Tastendruck die Überprüfung und damit jede Menge Arbeit
Wobei ich persönlich ein MaskEdit mit meinem Tip kombinieren würde. Durch ersteres "filterst" Du die gröbsten Eingabefehler mal heraus...
SCRaT