Danke für die vielen Antworten.
Nur so am Rande: Das ich mir mal eine Komponente selber geschrieben habe ist Jahre her. Sprich, zur Zeit fang ich da bei Null an.
Zurück zum Thema.
Okay. Zu TLayoutTemplate oder zu Template Manager spuckt meine Hilfe so gar nichts aus. Kann mir das jemand noch mal erläutern.
Zur Darstellung:
Code:
TEintragsTypListe (TObjectList) <--------------------------+
| |
+-->TEintragsTyp (TObject) |
| | |
| +-->Bezeichnung: string; |
| +-->Farbe: TColor; |
| +-->... | (Oder nur ein TObject,
+-->Count: Integer; | dass dann auf den
| TEintragstyp zeigt)
TEintragListe (TObjectList) |
| |
+-->TEintrag (TObject) |
| | |
| +-->Text: string; |
| +-->TEintragsTypListe (TObjectList) Zeigt auf ------+
| +-->EintragsTypIndex: Integer;
+-->Count: Integer
TUrlaubskalender (TObjectList)
|
+-->Eintragstypen: TEintragsTypList
+-->Eintraege: TEintragListe
+-->...noch ein paar globale
So hätte ich es mir vorgestellt. Das zur Laufzeit halt Eintragstypen hinzugefügt werden können.
Wenn dann aber Einträge hinzugefügt werden, muß ja irgendwie im Eintrag ein Zeiger auf die Eintragstypenliste mitgegeben werden. Das könnte man zwar auch über das OnCreate machen, sieht für mich aber ein irgendwie unschön aus.
Meine Frage zielt also darauf ab, wie man so was am elegantesten macht.
Mir fällt da grad noch einen andere Frage zu ein:
Wenn ich z.B. ein Eintrag hinzufüge, möchte ich gerne, dass die Komponente seine Paint-Routine aufruft. Da Eintrag ja eine eigene Klasse ist, kann sie ja nicht von welcher Klasse sie erzeugt ist. Oder doch?