geh jedes Element der Liste durch und prüfe so auf Gleichheit.
Ich vermute, dass Du das Event beim reinen hinschreiben sogar aufrufst, und das willst Du ja nicht.
so geht es bei meinem Multicaster.
Delphi-Quellcode:
procedure TButtonMulticaster.RemoveEvent(event: TNotifyEvent);
var
...
evList: eventList;
for i := (eventList.Count - 1) downto 0 do begin
ev := eventList.Items[i];
if (TMethod(ev).Code = TMethod(event).Code ) and
(TMethod(ev).Data = TMethod(event).Data ) then begin
eventList.Delete(i);
// exit;
end; // if
end; // for
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.