Entschuldigung. Die Begriffe waren von mir, so wie ich sie benannt hätte.
TLayoutTemplate = TEintrag
Template Layout Manager = Die Instanz von TEintragstypenList in deiner TUrlaubsplaner-Komponente.
Wenn Du also einen neuen Eintrag erstellst übergibst Du ihm deine EintragstypenList:
Delphi-Quellcode:
Procedure TUrlaubsplaner.AddEntry(aTypID : TEintragsTypID);
Var
derNeueEintrag : TEintrag;
Begin
derNeueEintrag := TEintrag.Create (EintragsTypenList);
derNeueEintrag.EintragTypID := aTypID;
EintragsList.Add(derNeueEintrag);
End;
...
Procedure TEintrag.Paint(...);
var
vorlage : TEintrafsTyp;
Begin
vorlage := fEintragsTypenList.FindByID(this.EintragTypID);
...
// Zeichne mit den Farben, Schrifttyp etc. aus der 'vorlage'
End;
Du könntest theoretisch einem Eintrag auch gleich den ganzen TUrlaubsplaner mitgeben, aber das ist kein guter Stil, denn hier kennen sich dann zwei Klassen gegenseitig und das sollte vermieden werden (zirkuläre Abhängigkeit (*)).
So kennt der TUrlaubsplaner eine TEintragsTypenList und ein TEintrag kennt eine TEintragstypenList. Kein Zirkel, kein Problem.
(*) Aus diesem Grund mag ich auch keine TCollection.