Was Du da treibst ist nicht so ganz problemfrei. OnExit feuert wenn das Control den Fokus verliert, d.h. Windows ist da gerade in einer focus transition. Es mag es überhaupt nicht, wenn Du gerade dann den Fokus manuell wieder zurücksetzt. Mitunter gibt das seltsame Effekte, z. B. Verschwinden des Carets in dem Edit.
Um auf fehlende Eingaben des Benutzers zu reagieren sollte man lieber die Funktion (button, menu) blockieren, die er verwendet, um die Eingaben zu prozessieren (z. B zu speichern) und eventuell die Hintergrundfarbe des Eingabecontrols in etwas auffälliges ändern.Den Fokus zurückzusetzten, selbst wenn man es richtig macht, unterbricht den Workflow des Benutzers, was generell eine richtig schlechte Idee ist, wenn Du willst, das der Benutzer den Programm mag
.
Man kann für sowas gut mit Delphi's Actions arbeiten. Wenn man eine Action mit dem Button und/oder Menu für die Verarbeitung der eingegebenen Daten verknüpft kann man in ihrem OnUpdate Event prüfen, ob alles ordnungsgemäß eingegeben wurde, und die Action disablen, wenn das nicht der Fall ist.