Shortcut verwenden
-
Hallo Leute,
ich habe mir die KOmponente HotKey eingefügt, und auf Alt+Rueck gesetzt!
Im Form OnShortCut-Ereigniss wird dann eine MessageBox ausgegeben!
Leider kommt die jetzt, egal welche Taste ich drücke....
ich dachte, das kommt dann nur bei Alt+Rueck??Wie funktioniert das richtig??
-
Hast Du Dir schon mal die Hilfe zu der Komponente und zu dem Ereignis OnShortCut durchgelesen?
Ich habe beides noch nicht verwendet, aber würde sagen, dass die beiden Dinge nichts miteinander zu tun haben.Gruß,
Alexander
-
ok, stimmt, aber wie kann ich dann mein problem lösen?
-
Hallo
aus der BCB-Hilfe zu THotkey verwenden :
Mit Hilfe der Komponente THotKey können Tastenkürzel für beliebige Steuerelemente definiert werden. Mit HotKey kann die jeweilige Tastenkombination und mit Modifiers der dabei verwendete Modifizierer (Alt, Strg, Umschalt) angegeben werden.
Die Komponente THotKey kann in der Eigenschaft ShortCut einem Menüeintrag zugewiesen werden. Wenn der Benutzer dann die Tastenkombination drückt, die in den Eigenschaften HotKey und Modifiers festgelegt ist, aktiviert Windows den Menüeintrag.Wenn du das so nicht verwenden willst, dann verzichte auf THotkey, und benutzt den OnShortCut-Event, umd drin manuell die Eingabe zu überprüfen. Dazu findest du bereits einiges in Forum.
bis bald
akari
-
und wie frag ich die im SHortcut ab?
Key geht ja nich!
Wie kann ich auf A und B prüfen und dann eine MessageBox ausgeben lassen??
-
Ich vermute, Du musst im OnShortCut-Ereignis des Formulars z.B. sowas machen:
void __fastcall FormOnShortCut(Messages::TWMKey &Msg, bool &Handled) { if (Msg.CharCode == VK_ALT + VK_BACK) { // Hier Dein Code Handled = true; } }Soweit ich das aus der Hilfe richtig herausgelesen habe - der Code ist nicht getestet.
Mit der Suchfunktion nach shortcut findest Du auch Möglichkeiten, wie das Problem über OnKeyDown lösen kannst.Gruß,
Alexander
-
nee geht net, auf 2 funktioniert nich, nur einer funktioniert immer

-
Oh_Oh schrieb:
nee geht net, auf 2 funktioniert nich, nur einer funktioniert immer

Na dann eben:
void __fastcall FormOnShortCut(Messages::TWMKey &Msg, bool &Handled) { short KEY_PRESSED = 0xf0; short keyState = GetKeyState(VK_MENU); if (Msg.CharCode == VK_BACK && keyState & KEY_PRESSED) { // Hier Dein Code Handled = true; } }Gruß,
Alexander