Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#39
  Alt 16. Apr 2003, 13:56
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
  Mit Zitat antworten Zitat