Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#22

Re: Namen der virtuellen Tastencodes

  Alt 6. Aug 2006, 11:40
Hallo Mazel,

die Variablen ShortCut und Modifier in meinem Beispielcode waren lediglich der Ersatz für deine ListView. Du wirst diese Variablen in deinem Programm nicht benötigen.

Bei der Übernahme eines Hotkeys (in der Routine BtnOKHotkeyClick) speicherst du den Text des Hotkeys in SubItems[0] ab. Die Werte von EditHotkey.HotKey und EditHotkey.Modifiers mußt du ebenfalls im Listeneintrag ablegen, damit du sie bei einem späteren Klick auf den Eintrag wieder in das THotkey-Control übertragen kannst. Den 16-Bit-Hotkey und den 8-Bit-Modifier kannst du dazu in einen 32-Bit-Wert packen und anschließend im Feld TListItem.Data ablegen:

Delphi-Quellcode:
// ListItem sei das markierte Element in der ListView
with EditHotkey do
  ListItem.Data := Pointer(MakeLong(Byte(Modifiers), Hotkey));
Nach dem Klick auf einen Listeneintrag müssen die Werte wieder extrahiert und in das THotkey-Control übertragen werden:

Delphi-Quellcode:
// ListItem sei das angeklickte Element in der ListView
with EditHotkey do
  begin
    Hotkey := HiWord(Cardinal(ListItem.Data));
    Modifiers := THKModifiers(LoByte(ListItem.Data));
  end;
Wichtig ist also, daß du für jeden Eintrag in der ListView die zugehörigen Werte für HotKey und Modifiers speicherst.

Gruß Hawkeye
  Mit Zitat antworten Zitat