Zitat von
be-2801:
Operator ist auf diesen Operatortyp nicht anwendbar.
Funktioniert genauso wenig
Naja, hättest du dir den Code mal kurz angeschaut, anstatt einfach nur die Fehlermeldung zu kopieren, hättest du das Problem aller Wahrscheinlichkeit sehr schnell gelöst gehabt
Problem ist die eine oder andere fehlende Klammer
Zitat von
be-2801:
Hab die 2 Varianten und noch mehr schon ausprobiert und keine funktioniert
Naja, man sollte eben auch mehr machen als nur Copy&Paste
Ne angepasste Variante:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',DecimalSeparator,#8]) or
((key = DecimalSeparator) and (pos(key, Edit1.Text) > 0) and (Pos(DecimalSeparator,Edit1.SelText) = 0)) then
key := #0;
if (key = DecimalSeparator) and ((length(Edit1.Text) = 0) or (Edit1.SelStart = 0)) then
Begin
Edit1.Text := '0' + Copy(Edit1.Text,Edit1.SelStart+Edit1.SelLength+1,Length(Edit1.Text));
Edit1.SelStart := 1;
end;
end;
Und die funktioniert
Eben getestet, also erzähl mir nix
//Edit: Jetzt auch mit DecimalSeparator aus der SysUtils
//Edit2: Nochmal etwas verbessert. Sieht jetzt grauenhaft aus, aber das Verschönern überlass ich dir
Mir gings eben um das Funktionieren
//Edit3-5: Ich weiß nich, ob ich heute noch alle kleinen Fehlerchen da raus krieg