Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#1

Container für bestimmte Objekte schaffen...

  Alt 7. Nov 2009, 19:26
Hallo zusammen,

ich versuche hier mal die Frage zu einem - glaube ich - nicht ganz trivialen Thema abzusetzen:

Derzeit befinde ich mich bei der Entwicklung von Komponenten für die Planung von Vorgängen. Hierbei bin ich auch schon etwas vorann gekommen (siehe Anhang). Der Aufbau ist momentan wie folgt:

Delphi-Quellcode:
  { die zentrale Komponente, enthält die Datumsleiste }
  TPlanGrid = class(TCustomControl)
    (...)
    property TPlanGridGroups;
  end;

  { Gruppen (Zusammenfassung von mehreren Zeilen) }
  TPlanGridGroups = class(TOwnedCollection)
    (...)
    property Items[Index: Integer]: TPlanGridGroup;
  end;

  TPlanGridGroup = class(TCollectionItem)
    (...)
    property TPlanGridLines;
  end;

  { Zeilen }
  TPlanGridLines = class(TOwnedCollection)
    (...)
    property Items[Index: Integer]: TPlanGridLine;
  end;

  TPlanGridLine = class(TCollectionItem)
    (...)
    property TPlanGridEvents;
  end;

  { Ereignisse (die Balken auf den Zeilen) }
  TPlanGridEvents = class(TOwnedCollection)
    (...)
    property Items[Index]: TPlanGridEvent;
  end;

  TPlanGridEvent = class(TCollectionItem)
  end;
Nun mein Problem: Ich würde gerne die Planzeilen (TPlanGridLine) und Ereignisse (TPlanGridEvent) sensitiv gestalten. Sie sollen also auf Mausereignisse usw. reagieren können. Diese Auswertung zentral in der Komponente TPlanGrid zu programmieren hat sich - aufgrund der großen Dynamic zur Laufzeit - als extrem aufwändig herausgestellt. Mein Gedanke wäre nun die Komponente TPlanGrid als Container zu erstellen. Diesem Container sollten dann die Gruppen vom TPlanGridGroup hinzugefügt werden können (und derzeit nur diese!). Die Gruppen wiederum fungieren ebenfalls als Container für TPlanGridLine-Objekte usw. Weiterhin sollten sich die Komponenten jeweils selbst Zeichnen und auf Ereignisse reagieren können.

So, ich hoffe es ist grob verständlich was ich zun möchte. Das Problem ist, dass es sich bei TCollectionItem ja nicht um ein TControl handelt ist dies ja nicht so ohne weiteres sensitiv zu bekommen... Irgendwie stehe ich momentan etwas auf dem Schlauch...

Konkrete Frage:

Wie würdet ihr den oben genannten Aufbau gestalten?
Von welchen Objekten würdet ihr die einzelnen Klassen ableiten?
Gibt es Standardobjekte mit ähnliche Funktionalität?

Bin für alle Anregungen dankbar...

Liebe Grüße

Alex
Miniaturansicht angehängter Grafiken
sample_967.jpg  
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat