So geht das :
Benutze am besten das OnKeyPress.
Delphi-Quellcode:
procedure TRealEdit.KeyPress(var Key: Char);
begin
inherited;
if Pos(DecimalSeparator, Text) = 0 then // einen . im RealEdit.text zulassen
ZulZeichen := ZulZeichen + [DecimalSeparator]
else
ZulZeichen := ZulZeichen - [DecimalSeparator]; // zweiten . verhindern
if not (Key in ZulZeichen) then
Key := #0;
end;
ZulZeichen ist in diesem Fall '0'..'9', also ein Set. Auch mit C+P ist es mir dabei nicht gelungen einen 2. Decimalseparator einzufügen.
[EDIT1] Vom OnChange ist abzuraten. 8)
[EDIT2] Keypress wird viel früher abgearbeitet. Wozu noch das ganze Edit dauernd überwachen ? Lieber nur einen Tastendruck.