Hallo MaToBe,
hier ist ein anderer Ansatz:
1. Lege eine
THotKey-Komponente (Register "
Win32") auf dein Formular, stelle bei deren Eigenschaft
InvalidKeys alle Schalter auf den Wert
False und gib der Komponente den Namen "HotKey".
2. Verbinde die folgende Routine mit dem Ereignis
OnShortCut deines Formulars:
Delphi-Quellcode:
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
var
Key : TShortCut;
begin
Key := {Menus.}ShortCut(Msg.CharCode, KeyDataToShiftState(Msg.KeyData));
if (Key = HotKey.HotKey) then
begin
ShowMessage ('Gotcha!');
Handled := True;
end;
end;
Wenn du die Applikation nun startest, kannst du nach einem Mausklick in das HotKey-Feld eine (fast) beliebige Taste oder Tastenkombination drücken, die dann als neuer Hotkey gespeichert wird. Jedes weitere Drücken der gelernten Tastenkombination sollte den MessageDialog erscheinen lassen. Durch das Drücken der ESC-Taste im HotKey-Feld kannst du die gespeicherte Tastenkombination löschen.
Gruß Hawkeye