Einzelnen Beitrag anzeigen

Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#1

RegisterHotkey - Taste Druck auswerten

  Alt 9. Nov 2005, 00:17
Hallo Leute,

in diversen anderen Beiträgen habe nachfolgenden Code zum Auswerten von Tasten gefunden.
Ziel: Bei Betätigung der Taste Druck (VK_SNAPSHOT) will ich Aktionen hinterlegen, die vom Standard abweichen.

Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;


const
  SnapshotHotKey = VK_SNAPSHOT;

procedure TForm1.WMHotKey(var Msg : TWMHotKey);
begin
  if Msg.HotKey = SnapshotHotKey
    then ShowMessage('SnapshotHotKey (' +IntToStr(Msg.HotKey)+ ') wurde betätigt')
    else ShowMessage('MsgHotKey = (' +IntToStr(Msg.HotKey)+ ') wurde gedrückt');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if not RegisterHotkey(self.Handle, SnapshotHotKey, 0, SnapshotHotKey)
    then ShowMessage(SysErrorMessage(GetLastError));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnRegisterHotKey(self.Handle, SnapshotHotKey);
end;
Funktioniert auch alles, nur beim Testen ist mir aufgefallen, daß
TForm1.WMHotKey(var Msg : TWMHotKey); nur dann abgearbeitet wird, wenn die korrekte Taste (SnapshotHotKey) gedrückt wurde, ich mir also die Abfrage mit if-then-else verkneifen kann und nur die Befehle des then-Zeiges hinterlegen muß.

Unter welchen Umständen macht dann da die Abfrage
if Msg.HotKey = SnapshotHotKey überhaupt einen Sinn.

mfg
eddy
  Mit Zitat antworten Zitat