Jo,
Val zu nutzen bringt nur was, wenn man auch das Result (E) auswertet. (zu oft schon gesehn, dass das nicht gemacht wird)
Wobei Val anstelle von TryStrToInt, hat nur dann einen Vorteil hat, wenn man wirklich mal die Fehlerposition wissen möchte ... ansonsten schleppt man nur sinnlos die ungenutzte Variable mit sich rum.
Delphi-Quellcode:
S := Edit1.Text;
Val(S, i, E);
if i > 0
then begin
Edit1.SetFocus;
Edit1.SelStart := E;
Edit1.SelLength := 9999;
raise Exception.Create('
ungültige Zahl');
end;