![]() |
Zwischen doppelten ShortCuts wählen
Ich habe auf einer Form eine große Menge von Actions - manche direkt in der Form definiert, manche auf Frames, die dynamisch instantiiert werden, usw.usf. Dabei gibt es doppelte ShortCuts - z.B. könnte die Form eine Aktion mit Strg+S definieren und ein gerade aktiver Frame ebenso. Drückt der Benutzer jetzt Strg+S, so sucht die VCL den ShortCut in den vorhandenen Aktionen in einer fixen Reihenfolge (Erstelllungsreihenfolge?).
Ich hätte es gerne kontextsensitiv: Wenn der Frame aktiv ist, soll "seine" Aktion ausgelöst werden, anderenfalls die der Form. Meine Lösung besteht momentan darin, in den relevanten Eventhandlern alle Aktionen durchzunudeln und bei allen gerade uninteressanten Aktionen den ShortCut auf 0 zu setzen, wenn es eine Kollision gibt. Das wird aber auf Dauer ziemlich verwickelt. Kennt ihr da eine schönere Lösung - etwa die gerade relevanten ActionLists nach "vorne" zu schieben? |
AW: Zwischen doppelten ShortCuts wählen
Benutze doch die Tag-Eigenschaft der Actionlist als eine Art Priorität und werte diese dann in Deiner bestehenden Routine aus. Außerdem gibt es da noch die Eigenschaft State die Du benutzen könntest. Ich weiß aber nicht ob schon in D2007.
|
AW: Zwischen doppelten ShortCuts wählen
Zitat:
Mal sehen, ob ich irgendwie die Reihenfolge der ActionLists verändern kann - TCustomForm.IsShortCut habe ich eh schon überschrieben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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