SpeedButton - Ableiten und neue Eigenschaft
-
Hallo Leute,
ich arbeite mit der Klasse TSpeedButton und benötige unbedingt die Eigenschaft TabStop und TabOrder. Gibt es hier eine Möglichkeit den Button abzuleiten und diese Eigenschaft hinzuzufügen?
Gruß Skay
-
Hinzufügen natürlich - in dem Sinne, dass du die Dinge neu implementierst. Einfach übernehmen kannst du das nicht einfach von anderen Kompo's...
-
Leider habe ich überhaupt keinen Ansatz wie ich es implementieren könnte. Kann mir hier jemand auf die Srpünge helfen?
-
Ja, das wird etwas schwieriger:
TabOrder und TabStop sind in WinControl definiert, d.h. sie werden an die entsprechenden Win-API Funktionen weitergereicht.
Da TSpeedButton nur von Control, aber nicht von TWinControl abgeleitet ist, wird es schwierig, diese Funktionalität hinzuzufügen.
Man könnte ein neues Control von WinControl ableiten und alle Eigenschaften und Methoden von TSpeedButton hinzufügen, ist aber sehr aufwändig.Eine andere Möglichkeit wäre, bei dem übergeordneten Formular KeyPreview zu setzen und die Tab-Taste abzufangen, dann müßtest du bei dem neuen TSpeedButton das Focussetzen selbst schreiben, also z.B. mittels DrawFocusRect.
-
@Th
Vielen Dank für deine Antwort. Ich denke dass ich es über die KeyPreview Eigenschaft des Formulars versuche. Dies ist zwar definitiv nicht die schönste Variante, aber alles andere ist zu viel Aufwand.
-
Ich habe es jetzt mal versucht, aber leider kann man den Tastencode VK_TAB über kein KeyPress oder KeyDown abfangen (Getestet und auch in der Hilfe vermerkt). Auch über WndProc habe ich es nicht geschafft.
Hat noch jemand einen Tip wie ich es abfangen kann?
-
Siehe http://web.archive.org/web/20040201231408/http://bcbdev.com/faqs.htm unter "Events and Messages".
-
siehe hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-11027-and-highlight-is-dlgcwanttab.html
vlei hilfts.