Aber es stellt sich mir noch ein anderen Problem: Das Neuzeichnen wenn Einträge hinzugefügt werden.
Als Beispiel nehme ich mal ein TListView. Wenn ich im
OI Columns oder Items hinzufüge, dann wird das sofort im ListView umgesetzt und dargestellt.
So würde ich das auch gerne machen.
Mach es doch. Der TEintrag hat ein Event 'OnChange'. Das ruft ein Eintrag auf, wenn sich irgendwas in ihm verändert hat. Und dein TUrlaubsplan 'subscribed' sich auf dieses Event. Einfach ausgedrückt: Im 'AddEintrag' setzt Du das Event.
Delphi-Quellcode:
Procedure TUrlaubsPlan.ItemChanged (Sender : TObject);
Begin
Assert (Sender is TEintrag, 'Nee, Du darfst diesen Handler nur an TEintrag-Instanzen bepseln');
Repaint....
End;
Procedure TUrlaubsPlan.AddEntry (...);
Var
derNeueEntrag : TEintrag;
begin
...
derNeueEintrag.OnChanged := ItemChangeD;
...
End;