Wenn also das edit-Feld verlassen wird (den Focus verlieren soll ???), dann wird geprüft, ob sich die Zahl ohne Probleme in einen Integer umwandeln lässt. Wenn das nicht der Fall ist, wenn also TryStrToInt False zurückgibt, wird der Focus wieder auf das EditFeld gesetzt.
Mit anderen Worten, solange kein "gültiger" Inhalt im edit-feld steht, kann dasselbe nicht verlassen werden.
Was denn dazu führt, dass man dann zwangsweise etwas eingeben MUSS, ansonsten reagiert das Programm auch nicht mehr auf Buttons etc.
Also dann vielleicht noch auf einen leeren String abfragen.
Delphi-Quellcode:
procedure frmMain.edPortExit(Sender: TObject);
var temp : Integer;
begin
if (edPort.Text <> '') and not TryStrToInt(edPort.Text, temp) then
(sender as TEdit).setFocus;
end;