Die Variable "Zahl" würde ich
1. in die Procedure mit reinnehmen, damit ist sie nur lokal innerhalb der procedure gültig und
2. als Extended oder Double deklarieren, denn eine Zahl ist eine Zahl und kein String
Das Ganze würde dann so aussehen:
Delphi-Quellcode:
procedure TForm1MSP.Edit1MasseChange(Sender: TObject);
Var
zahl:Extended;
begin
if not TryStrToFloat(Edit1Masse.text, zahl)
then showmessage('FEHLER')
end;