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