Hallo, ich lerne gerade ein wenig mit Lazarus zu programmieren.
Ich möchte dabei Hotkeys programmieren, die man außerhalb von der TForm nutzen kann. Leider funktioniert das bei meinem Programm nicht, aber ich weiß nicht, was das Problem ist.
Code:
unit unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, LCLType, Windows;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
HotkeyRegistered: Boolean;
implementation
{$R *.lfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
HotkeyRegistered := False;
RegisterHotKey(Handle, 1, MOD_CONTROL or MOD_SHIFT, VK_NUMPAD1);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if HotkeyRegistered then
UnRegisterHotKey(Handle, 1);
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (ssShift in Shift) and (Key = VK_NUMPAD1) then
begin
ShowMessage('Hotkey wurde gedrückt!');
end;
end;
end.
Weiß jemand, woran das liegt?