![]() |
Delphi-Version: 2007
KeyPress in einer von TEdit abgeleiteten Klasse überschreiben
Hallo,
ich hab schon auch selber danach gegoogelt, aber ich komme nicht dahinter wo der Fehler liegt (vielleicht ist es auch zu banal/ Brett vor dem Kopf): Was mache ich? Ich leite meine neue Klasse von TEdit ab. Klappt soweit alles. Jetzt will ich aber nur Zahlen und Rechenoperatoren in der Eingabe zulassen; KeyPress überschreiben.
Delphi-Quellcode:
Klappt soweit.
protected
procedure KeyPress(var Key: Char);override; In der Methode klappt auch:
Delphi-Quellcode:
Was nicht klappt, ist den "." oder das "," in den vom System vorgegebenen Dezimalseparator zu ändern.
if not (Key in ['0'..'9','.',',','+','-','*','/',#8, #9, #13, #27, #33, #127]) then Key := #0;
Delphi-Quellcode:
Hier meckert er nun bei der Zuweisung SepChar := DecimalSeparator; if Key = ',' and not (Key = SepChar) then Key := SepChar; if Key = '.' and not (Key = SepChar) then Key := SepChar;
Code:
mit dem Fehler: E2015 Operator ist nicht auf den Operandentyp anwendbar
Key := SepChar
Dasselbe kommt bei
Delphi-Quellcode:
.
Key := DecimalSeparator
Hat jemand eine Idee? Grüße! |
AW: KeyPress in einer von TEdit abgeleiteten Klasse überschreiben
Da fehlen Klammern.
Delphi-Quellcode:
if (Key = ',') and not (Key = SepChar) then Key := SepChar;
|
AW: KeyPress in einer von TEdit abgeleiteten Klasse überschreiben
Du musst den ersten Key-Vergleich klammern. "=" ist schwächer als "AND".
Andererseits geht es aber auch kürzer:
Delphi-Quellcode:
if Key in [',', '.'] then Key := SepChar;
|
AW: KeyPress in einer von TEdit abgeleiteten Klasse überschreiben
Ich habs geahnt, dass es ein banaler Fehler ist . Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz