sieht aus, als wärs das gewesen. Und nun das nächste:
Code:
procedure TRealEdit.KeyPress(var Key:Char);
var ZulZeichen : SET OF char;
begin
inherited KeyPress(Key);
if OnlyReals then begin
ZulZeichen := ['0'..'9',#8];
if pos (DecimalSeparator,text) = 0 THEN // kein . im RealEdit.text . zulassen
ZulZeichen := ZulZeichen + [DecimalSeparator]
else
ZulZeichen := ZulZeichen - [DecimalSeparator]; // zweiten . verhindern
if not (Key in ZulZeichen) then
Key := #0
else begin
if length (text) = 3 then
text := text + '.';
end;
end;
end;
Man beachte die Zeile :
Testweise soll bei dem 3. Zeichen ein Tausenderpunkt kommen. So sollte es aussehen: 123.456 und das kommt dabei heraus : 456123. Der Punkt ist zwar gesetzt, aber die Eingabe beginnt danach vor der 1. Zuerst also 4123. dann 45123. usw. Sieht da jemand mehr als ich ?