Hi Hansa,
ich hab mir die
pas angeschaut. Da sind mir ein par Fragen gekommen. (ich würde die gerne mal erörtern, wobei es nicht darum geht, dass ich damit recht habe)
Deine Methode KeyPress.
Du rufst inherited KeyPress(Key) am Anfang auf und bearbeitest dann nachträglich den Wert im Edit.
Warum nicht prüfen, verändern und dann mit keypress über inherited weiterverarbeiten lassen? so nach dem Motto:
Delphi-Quellcode:
procedure TRealEdit.KeyPress(var Key:Char);
var ZulZeichen : SET OF char;
Old Key : Char;
begin
if OnlyReals then begin
ZulZeichen := ['0'..'9',#8];
IF not (Key in ZulZeichen) then begin
Key := #0;
Exit;
end;
OldKey := Key;
IF (pos (DecimalSeparator,text) = 0) and Length(Text) = 3 then begin
Key := '.';
Inherited KeyPress(Key);
end;
inherited keypress(OldKey);
end;
end;
Also, ist jetzt nicht grad sehr elegant (OldKey ist Quatsch, würde '.' direkt reinschreiben) aber im Prinzip nach der Art.
Außerdem ist der Dezimalseperator nicht der Punkt als Tausendertrennzeichen sondern das Komma; dächte ich.
Gruß oki