![]() |
TabOrder überschreiben
Hallo Leute,
Ich mal wieder. Dieses Mal geht mein Problem um die TabOrder. Es ist an sich ja eine wunderschöne Sache, nur für meine Bedürfnisse nicht ausreichend bzw. fehlerhaft. Ich würde gerne selbst festlegen welche nach welcher Komponente angefocust wird. Leider reagiert mein Editfeld nicht auf VK_TAB. Auch bei KeyPress und #09 keine Regung. Weiß jemand wie ich dafür sorgen kann dass er darauf reagiert ? Ein kleines Beispiel wie ich mir das vorstelle : Edit1 -> Edit3 -> Edit1 -> Edit2 Hat zwar an sich keinen Sinn, aber es soll ja nur als Beispiel dienen. Mir geht es einfach nur um das Prinzip wie ich das lösen könnte. Würde mich über eine Antwort freuen. Gruss Urba |
Re: TabOrder überschreiben
Hallo Urba!
Normalerweise bekommen die Komponenten die Tabulatorpositionen in der Reihenfolge des Erstellens. Im OI kannst Du die TabOrder einstellen - beginnend bei 0. Wenn Du eine besetzte Nummer nimmst, rutschen alle anderen Komponenten nach unten. Also die erste Komponente aktivieren, 0 eintragen. Dan die 2. mit 1 usw. bis alle versorgt sind. Wenn das dynamisch sein soll (also der Nachfolger ist jeweils vom Inhalt abhängig) mußt Du im OnExit-Ereignis den Focus entsprechend setzen. Gruß Dietmar Brüggendiek |
Re: TabOrder überschreiben
klasse danke schön :-D warum kompliziert denken wenn es auch so einfach geht :lol:
Gruss Urba |
Re: TabOrder überschreiben
Und es geht noch einfacher. Mach mal einen Rechtsklick auf dein Formular mit den Komponenten und dann kuck dir mal den Eintrag "Taborder..." an. ;)
|
Re: TabOrder überschreiben
Hallo Luckie,
Normalerweise kenne ich dich als jemand der immer alles genau liest :shock: :lol: Mein oben genanntes Beispiel wirst du auf diese Weise nicht hinbekommen :twisted: Also ciao Urba |
Re: TabOrder überschreiben
Oh, sorry. Ich dachte nur als alternative für die statische Methode von Brüggendiek.
|
Re: TabOrder überschreiben
du musst von TEdit ableiten und eine Message abfangen
Delphi-Quellcode:
Anschließend bekommst du im OnKeyPress etc. auch das Event wenn die Tab-Taste gedrückt wird
TTabEdit = class(TEdit)
private procedure FWMGETDLGCODE(var Msg : TWMGetDlgCode); message wm_GetDlgCode; end; [...] procedure TTabEdit.FWMGETDLGCODE(var Msg : TWMGetDlgCode); begin inherited; Msg.Result := Msg.Result or DLGC_WANTTAB; end; |
Re: TabOrder überschreiben
hat sich alles schon erledigt, aber wieso soll ich es wie in deinem Vorschlag so kompliziert machen wenn es mit "setFocus" und "onExit" so schön einfach geht ?
|
Re: TabOrder überschreiben
Hmm, war zu einfach um das ich auf die Idee gekommen wäre..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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