Thema: Delphi Hotkey

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 31. Okt 2002, 11:55
Moin Alexander,

hiermit sollte es jetzt gehen.
Übergeben wird, wie gehabt, THotKey.Hotkey, der Rückgabewert ist von einem selbst definierten Typ, der zwei Felder enthält, eines für die Modifier Kombination, das andere für den virtuellen Tastencode.

Code:
[b]type[/b]
  TcsWinHotKey =
    [b]packed[/b] [b]record[/b]
      dwModifier : DWORD;
      dwVK      : DWORD;
    [b]end[/b];
Code:
[b]function[/b] ConvertPascalShortCut([b]const[/b] p_scIN : TShortCut) : TcsWinHotKey;

[b]const[/b]
  _iModifier : [b]array[/b] [0..7] [b]of[/b] integer = (
      0,
      MOD_SHIFT,
      MOD_CONTROL,
      MOD_SHIFT [b]or[/b] MOD_CONTROL,
      MOD_ALT,
      MOD_SHIFT [b]or[/b] MOD_ALT,
      MOD_CONTROL [b]or[/b] MOD_ALT,
      MOD_SHIFT [b]or[/b] MOD_CONTROL [b]or[/b] MOD_ALT
      );

[b]begin[/b]
  Result.dwModifier := p_scIN;
  [color=#000080]// Die für Modifier entscheidenden Stellen herausfiltern[/color]
  Result.dwModifier := Result.dwModifier [b]and[/b] $0000FF00;
  [color=#000080]// an die richtige Stelle schieben[/color]
  Result.dwModifier := Result.dwModifier [b]shr[/b] 14;
  [color=#000080]// und den richtigen Modifier aus der Tabelle holen[/color]
  Result.dwModifier := _iModifier[Result.dwModifier];
  [color=#000080]// Virtual Key herausfiltern[/color]
  Result.dwVK := p_scIN [b]and[/b] $000000FF;
[b]end[/b];
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat