![]() |
TEdit: numbersOnly erweitern oder Meldung nutzen
Hi,
ich habe ein Edit-Feld, in das neben Zahlen auch der Decimal-Separator eingegeben werden können soll. Daher kann ich die Eigenschaft numbersOnly ja nicht nutzen. Das ist technisch kein Problem, es gibt ja onKeyPress und dann macht man es eben selbst. Was dabei aber etwas auf der Strecke bleibt, ist die Rückmeldung an den Nutzer - daher die Frage: Kann man irgendwie diese Meldung antriggern, die kommt, wenn numbersOnly gesetzt ist und eine Nicht-Zahl eingegeben wird? Oder numbersOnly so ausdehnen, dass ich den Decimal-Separator da mit reinnehmen kann? Liebe Grüße, Frederic |
AW: TEdit: numbersOnly erweitern oder Meldung nutzen
NumbersOnly stetzt einfach nur den Window-Style
![]() Dieses kann man wohl nur noch weiter einschränken und nicht mehr erweitern. Also dann doch alles selber machen (gibt ja genügend Codebeispiele dafür in der DP zu finden), und für die Anzeige nimmst du einen BalloonTip. PS: OnKeyDown alleine hilft nichts. OnCange muß mindestens auch noch geprüft werden, denn sonst könnte man ja einfach ungültige Zeichen reinkopieren. |
AW: TEdit: numbersOnly erweitern oder Meldung nutzen
Hi,
ja, so werde ich es dann wohl machen. In dem Fall reicht auch onKeyPress für mich, das verhindert ja Strg+V grad mit und das PopupMenu ist auch deaktiviert. LG, Frederic |
AW: TEdit: numbersOnly erweitern oder Meldung nutzen
SendMessage+WM_SETTEXT oder SetWindowText :stupid:
|
AW: TEdit: numbersOnly erweitern oder Meldung nutzen
WindowProc überschreiben:
Delphi-Quellcode:
procedure TForm1.Edit1WndProc(var Message: TMessage);
var Input: Char; begin Input := Chr(Message.WParam); if (Message.Msg = WM_CHAR) and (Input = FormatSettings.DecimalSeparator) then Edit1.SelText := Input else FOldEdit1WndProc(Message); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 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-2025 by Thomas Breitkreuz