so, mußte jetzt erstmal suchen wie der Rest definiert ist, aber .OnPreExecute ist als THookNotify definiert und da schau dir mal das "of object" an.
THookNotify = procedure(Hook: THook; var Hookmsg: THookMsg) of object;
Also muß die Prozedur eigentlich in einer Klasse liegen.
Delphi-Quellcode:
tDeineKlassenVariable = Class
procedure KeyboardHookPreExecute(Hook: THook; var Hookmsg: THookMsg);
end;
PS: Klassen-Prozeduren haben einen versteckten Parameter. (kennst'e vielleicht von TForm ... "Self" )
Man kann also notfalls (ist zwar nicht unbedingt "guter" Code) dieses selber einfügen und es als normale/einzelne Prozedur lassen
procedure KeyboardHookPreExecute(Self: TObject; Hook: THook; var Hookmsg: THookMsg);
Ein Therapeut entspricht 1024 Gigapeut.