[Hinweis]
Einen Buffer-Overrun bemerkt man nicht immer sofort, es kommt immer darauf an ob zufällig Speicher an der Stelle vorhanden ist und ob und mit was er sonst noch belegt ist also ob/was dort überschrieben wird.
Drum bemerkt auch nicht jeder sofort den Fehler .... außer man schaltet entsprechende Prüfcodes ein, bzw. baut selber ordentliche Prüfungen ein.
Das mit dem nicht richtig ausgefüllt ...
Die
GUI ist schon sehr unintuitiv, da wäre es besser gewesen du hättest alles einzeln geprüft und dem Benutzer ordentliche/aussagefähige Fehlermeldungen rausgegeben.
Man kann mit
TComponent.SetFocus oder
TForm.ActiveControl auch noch die erste Fehlerstelle angeben, bzw rote Fehlermarkierungen kommen auch immer gut an.
Da ich bei Geburtstag das Alter eintragen wollte, denn wenn schon was drin steht, sieht man deinen "Hinweis" nicht mehr, bin ich erst beim Debuggen, also dem Prüfen was dein IF von mir will, auf die 4-Stellingkeit gekommen.
Tipp: Es gibt einen TDateTimePicker, welchen man Datums- und Zeitangaben verwenden kann.