Ein Event ist ein funktionspointer, z.b. Ein OnClick Event ist vom Typ TNotifyEvent
- Code: Alles auswählen
type
TNotifyEvent = procedure (Sender:TObject) of object;
Das heißt der eventhandler muss eine Methode (also die Funktion einer Klasse sein) die 1 argument annimmt das vom Typ TObject sein.
Ohne das of object würde es eine normalen procedure und keine Methode sein
Geht natürlich auch mit Funktionen:
- Code: Alles auswählen
TTestFunc = function (AIndex: Integer): Boolean; // eine Funktion, keine Methode, die einen Boolean zurückgibt und einen Integer als Argument nimmt
Den funktionspointer einer Funktion bekommst du über @:
- Code: Alles auswählen
function test(AIndex: Integer): Boolean;
Begin
Result := AIndex > 0;
End;
...
Var t: TTestFunc;
...
t := @test;
If t(42) then ...
Schau dir einfach die Definition der property an und Bau die Methode selbst