Aus dem Hut ohne Netz und doppelten Boden:
Delphi-Quellcode:
type
//Forward-Deklaration
TKnotenPunkt = class;
//Event-Deklaration
TKnotenPunktClickEvent = procedure(Sender: TKnotenpunkt) of object;
TKnotenPunkt = class(TCustomControl)
private
//privates Feld vom Typ des Events
FOnClick: TKnotenPunktClickEvent;
...
protected
procedure Click; override;
...
public
//Event-Property, damit man auch etwas zuweisen kann
property OnClick: TKnotenPunktClickEvent read FOnClick write FOnClick;
...
end;
procedure TKnotenPunkt.Click;
begin
inherited;
//Eventhandler ausführen, sofern zugewiesen
if Assigned(FOnClick) then
FOnClick(self);
Angeklickt := True;
end;
Nun kannst Du beim Erzeugen jedes Knotenpunkts diesem einen Eventhandler (zweckmäßigerweise immer denselben) zuweisen. Diesem wird im Sender-Parameter mitgegeben, welcher Knotenpunkt das Event ausgelöst hat.