Ich weiß, dass ist keine direkte Antwort auf deine Frage, aber:
.. was hälst du von TDateTimePicker? Mit der Eigenschaft "nur Datum" ziemlich nützlich, denn der Benutzer kann keine falschen Daten eintragen.
//Edit: Du kannst natürlich auch alles manuell grundlegend prüfen: Tag >= 1 und <= 31, Monat >= 1 und <= 12 usw. Danach in EncodeDate reinhalten. Keine Ahnung, obs funktioniert