Man bekommt den Owner und die Methode zusammen übergeben?
Delphi-Quellcode:
constuctor TEventHandler<T>.Create(OwnerMethod: T; AddEvents: array of T);
begin
inherited Create(TComponent(TMethod(OwnerMethod).Data)); // Owner
for M in AddEvents do
Add(M);
end;
statt
Delphi-Quellcode:
eventHandler := TEventHandler<TNotifyEvent>.Create(Button1);
eventHandler.Add(ClickHandler1);
eventHandler.Add(ClickHandler2);
Button1.OnClick := eventHandler.Invoke;
einfach
Delphi-Quellcode:
eventHandler := TEventHandler<TNotifyEvent>.Create(Button1.OnClick);
eventHandler.Add(ClickHandler1);
eventHandler.Add(ClickHandler2);
oder gar so
TEventHandler<TNotifyEvent>.Create(Button1.OnClick, [ClickHandler1, ClickHandler2]);
.
In dem TMethod (Button1.OnClick) steckt ja schon alles drin > die aufzurufende Methode und das Objekt, welches man als Owner verwenden kann.
Ja, ich geb's zu ... ich bin ein schreibfauler Programmierer
, aber ich steh dazu