Wie fange ich eine VK_TAB Taste in meinem TEdit-Steuerelement und lassen Sie es nicht, verlieren Sie den Fokus?
In meine TEdit-Feld habe ich text in form <number1>..<number2>
.
Meine Idee ist:
Wenn ein Benutzer das Steuerelement mit TAB aus einem anderen Steuerelement, number1
wird ausgewählt.
Wenn meine TEdit-Steuerelement hat Fokus und der Benutzer die Taste TAB nochmal, ich will die number2
zu erhalten, ausgewählt und number1
zu deaktiviert werden.
Und wenn aktuellen position der Einfügemarke an der Stelle, wo Zahl2 ist, drücken Sie TAB sollten sich normal Verhalten und bewegen Sie den Fokus auf das nächste Steuerelement auf das Formular.
Habe ich 2 Probleme.
- Kann ich nicht fangen die tab-Taste drücken, wenn das Eingabefeld aktiv ist schon. Ich kann nur fangen, wenn dieses Steuerelement eingegeben wird/fokussiert.
- Ich weiß nicht, ob es ein Schlüssel ist ähnlich wie #0, so konnte ich den Schlüssel drehen in NoOP.
Irgendwelche Ideen, wie es zu tun?
InformationsquelleAutor user1651105 | 2010-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie besser zu schreiben, Ihre eigenen TEdit-Nachkomme, der Prozesse WM_GETDLGCODE-Nachricht. Die Allgemeine Idee ist:
Aktualisiert: dieselbe Idee, ohne dass ein TEdit abgeleiteten Klasse:
wm_GetDlgCode
ist definitiv der Weg zu gehen. Sie nicht müssen zu machen, ein Nachkomme der Klasse sein, obwohl. Sie können einen beliebigen SteuerelementsWndProc
Eigenschaft zu fangen, was auch immer Nachrichten, die Sie wollen.InformationsquelleAutor kludg
Vielleicht möchten Sie sich bei TJvIPAddress in JvComCtrls. Ich denke, die Suche nach TabThroughFields und VK_TAB, sollten Sie auch auf die Spur.
InformationsquelleAutor Uli Gerhardt
Oh, und in ein Key-Press-Ereignis Sie können den Schlüssel auf 0
BEARBEITEN
Das folgende ist eine call-stack Aufnahme eines KeyDown-Ereignis für ein TAB-Taste
Wie Sie sehen können, es muss gehen durch KeyDown wie normale Tasten tun, sondern fordert
BroadCast
um die Nachricht zu senden....Also brauchst du eine Nachricht catcher
um es zu fangen.
Im ziemlich sicher, dass #9 ist der char äquivalent zu VK_Tab
InformationsquelleAutor James Barrass