@Gyrospeter: 100 Punkte
Soweit ich weiß geht allerdings das umgekehrte nicht in Delphi: Dass ein Button mehrere Handler aufrufen kann. Das nennt sich dann Multicasting (Edit: Oder Delegates? In C# hießen die so meine ich. Lange her.)
Das ist richtig. In Javascript heißt es Propagation und eine ziemlich nervige Krankheit. Bei jQuery löst ein stopPropagation so manches Problem ^^ Ich habe sowas bei Bedarf in Delphi immer über Messages gelöst. Das gilt dann aber nur für
VCL und
Win32/64.
EDIT: Wobei mir gerade die folgende Idee kommt (Papiertheorie!):
Delphi-Quellcode:
type
TNotifyEvents = TArray<TNotifyEvent>;
TMyClass = class(Irgendwas)
private
FEvents: TNotifyEvents;
protected
procedure DoEvents;
public
property Events: TNotifyEvents read FEvents write FEvents;
end;
implementation
procedure TMyClass.DoEvents;
var
LEvent: TNotifyEvent;
begin
for LEvent in FEvents do begin
if Assigned(LEvent) then begin
LEvent(Self);
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FMyClass.Events := [Eventhandler1, Eventhandler2, Eventhandler3];
end;