Zitat von
Mazel:
Ich habe so eben mitbekommen, dass es eine Komponente names Hotkey auf dem Reiter
Win32 (Delphi 6) gibt, die all das macht was ich brauche.
Nach deinem vorletzten Beitrag wollte ich dir genau diese Komponente vorschlagen, aber mit deinem letzten Beitrag bist du mir zuvorgekommen.
Zu deinem Problem: die Tastenkombinationen 'Strg+Alt+Einfg' und 'Strg+Alt+0(Zehnertastatur)' unterscheiden sich (mit NUMLOCK off) nur durch die Modifier. Du wirst diese Eigenschaft von THotkey also mit abspeichern und beim Auswählen eines Listeneintrags wieder setzen müssen. Leider werden die Modifier dadurch für nachfolgende Eingaben in THotkey erzwungen. Mit einem Löschbutton gibst du dem Anwender die Möglichkeit, das Eingabefeld komplett (inklusive Modifier) zu löschen.
Im folgenden Beispielcode wird die Eingabe in einer globalen Variablen gespeichert. Sehr wichtig ist die Reihenfolge der Anweisungen in den Routinen
btnLoadHotkey und
btnClearHotkey.
Delphi-Quellcode:
var
ShortCut : TShortCut;
Modifier : THKModifiers;
procedure TForm1.btnSaveHotkey (Sender: TObject);
begin
ShortCut := HotKey1.HotKey;
Modifier := HotKey1.Modifiers;
end;
procedure TForm1.btnLoadHotkey (Sender: TObject);
begin
HotKey1.HotKey := ShortCut;
HotKey1.Modifiers := Modifier;
end;
procedure TForm1.btnClearHotkey (Sender: TObject);
begin
HotKey1.Modifiers := [];
HotKey1.HotKey := 0;
end;
Gruß Hawkeye