Also ich sehe da einige Fehler im Design:
1.) Die Klasse TAnsprechpartnerListe muss in Wirklichkeit
TAnsprechpartner heissen, denn es handelt sich um keine "Liste"!!
Nur eine Namensänderung aber daraus folgen weitere Dinge
2.) Die Klasse TAnsprechpartner kann im Grunde genommen nur ein OnChange-Event besitzen, denn sie weiss nicht, ob sie irgendwo hinzugefügt oder gelöscht wurde.
Das Property ModifyAction gehört auch nicht in diese Klasse.
Delphi-Quellcode:
TAnsprechpartner = class
protected
procedure DoChange;
....
public
property OnChange:TNotifyEvent read FOnChange write FOnChange;
end;
// Events sollte man immer über eine Hilfsprocedure auslösen
procedure TAnsprechpartner.DoChange;
begin
if Assigned(FOnChange) then
FOnChange(self);
end;
3.) Die Klasse TAnsprechpartnerObjListe bekommt natürlich mit, wenn ein Objekt hinzugefügt oder gelöscht wird.
Aber sie kann nicht erkennen wenn ein Objekt der Klasse TAnsprechpartner verändert wird.
Es ist dann aber möglich dass TAnsprechpartnerObjListe beim Hinzufügen eine TAnsprechpartner-Objekts das OnChange-Event auf einen interen Eventhandler richtet und so über Änderungen informiert wird.