Hi,
du musst deine Prozeduren, die du hast als Methoden des Formulars deklarieren oder der Prozedur sagen, dass die Komponente auf deinem Formular liegt.
Bei ersterem sieht das so aus (Änderung fett hervorgehoben):
Code:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, hotkey, Shellapi, ComCtrls;
type
TForm1 = class(TForm)
DemoHotKey: THotKey;
private
[b]procedure EvtHotkey(Sender: TObject; Name: string);[/b]
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.nfm}
procedure [b]TForm1[/b].EvtHotkey(Sender: TObject; Name: string);
begin
if Name = 'Demosave' then
{ Save_demo(); }
end;
procedure [b]TForm1.[/b]erzeugen;
var
fHKManager: THotkeyManager;
begin
fHKManager := THotkeyManager.Create;
fHKManager.Hotkeys['Demosave'].Hotkey := DemoHotKey.HotKey; // <--das mag er irgendwie nicht
fHKManager.Hotkeys['Demosave'].Hotkey := HKey; // HKey ist vom Typ TShortCut
fHKManager.Hotkeys['Demosave'].OnHotkey := EvtHotkey;
fHKManager.Hotkeys['Demosave'].RegisterHotkey;
end;
Die andere Möglichkeit sieht so aus:
Code:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, hotkey, Shellapi, ComCtrls;
type
TForm1 = class(TForm)
DemoHotKey: THotKey;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.nfm}
procedure EvtHotkey(Sender: TObject; Name: string);
begin
if Name = 'Demosave' then
{ Save_demo(); }
end;
procedure erzeugen;
var
fHKManager: THotkeyManager;
begin
fHKManager := THotkeyManager.Create;
fHKManager.Hotkeys['Demosave'].Hotkey := [b]Form1.[/b]DemoHotKey.HotKey; // <--das mag er irgendwie nicht
fHKManager.Hotkeys['Demosave'].Hotkey := HKey; // HKey ist vom Typ TShortCut
fHKManager.Hotkeys['Demosave'].OnHotkey := EvtHotkey;
fHKManager.Hotkeys['Demosave'].RegisterHotkey;
end;
(Statt
Form1 kannst du auch
TForm1 nehmen, für dich (!) sollte es da keinen Unterschied geben)
Chris