![]() |
Auf Shift-Tab in TEdit reagieren ???
Hi,
wie kann erfahren, ob der Benutzer in einem TEDit die Tastenkombination Shift + Tab gedrückt hat ? Hab das so probiert.
Delphi-Quellcode:
aber irgendwie bekomm ich nie die Message...
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (shift = [ssShift]) and (key = 9) then showmessage('DOWN: '+Inttostr(key)); end; danke, winx |
Re: Auf Shift-Tab in TEdit reagieren ???
Ich habe
![]() Zitat:
|
Re: Auf Shift-Tab in TEdit reagieren ???
wenn ich key preview auf treu stelle funktionierts auch irgendwie nich.
hab mal einen haltepunkt in der prozedur gesetzt. (erste zeile). Nur Shift gedrückt => Er kommt in die Prozedur Nur Tab gedrückt => Er kommt NICHT in die Prozedur Nur Shift+Tab gedrückt => Er kommt NICHT in die Prozedur Buchstabe (a,b,c,...) gedrückt => Er kommt in die Prozedur Schnall ich nicht |
Re: Auf Shift-Tab in TEdit reagieren ???
Zitat:
1. KeyPreview := true ist unbedingt nötig, nicht nur ein Versuch. 2. Laut Hilfe und windows.pas ist die Tab-Taste #9, und diese wird von KeyUp/KeyDown (nicht KeyPress) ausgewertet. 3. Den Haltepunkt hätte ich auch als nächstes vorgeschlagen. Versuch doch einmal, KeyUp auszuwerten. Übrigens: der Übersichtlichkeit halber schlage ich folgende Schreibweise vor:
Delphi-Quellcode:
Jürgen
if (shift = [ssShift]) and
key = VK_TAB) // <-- then showmessage('DOWN: '+Inttostr(key)); |
Re: Auf Shift-Tab in TEdit reagieren ???
Ist zawr eher umständlich und meines Erachtens nicht so schön, aber wie wärs wenn du die Windows-Messages für die Tastatureingaben anfängst, dann ausließt, ob deine Tasten gedrückt sind, und dann noch testest ob das bestimmte Edit den Focus hat?!
PS: Bin mit dem OnKeyPress und wie die anderen Proceduren auch immer heißen nicht wirklich zufrieden. Diese liefern nur Ergebnisse, wenn es sich um "normale" Tasten handelt! |
Re: Auf Shift-Tab in TEdit reagieren ???
Du musst WMGetDlgCode überschreiben und zum geerbten Ergebnis DLGC_WANTTAB dazubringen. Wenn das nicht enthalten ist, bekommt das Element die Tabs erst garnicht sondern Windows setzt den Focus um.
Danach kannst du den VK_TAB abfragen. |
Re: Auf Shift-Tab in TEdit reagieren ???
|
Re: Auf Shift-Tab in TEdit reagieren ???
KeyPreview muss übrigens nicht auf True gesetzt werden. Dies ist nur notwendig wenn man die Tasten in den Key-Events des Forms erhalten will. Wenn man aber die Events des Edits belegt ist es nicht notwendig.
|
Re: Auf Shift-Tab in TEdit reagieren ???
danke!!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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