Hallo-
So langsam mache ich immer mehr sichtbare Dinge und nicht nur die Zahnräder im Hintergrund. Nachdem mir für mein Einsatzgebiet Firemonkey anscheinend keinen Zusatznutzen bringt (
siehe hier) beschränke ich mich hierbei auf die
VCL.
Es geht, beispielhaft, um eine Diagnose-Oberfläche:
Ich möchte einfach nur eine Handvoll Objekte ("Container") visualisieren.
Die Anzahl ist nicht fest, in der Regel werden es wohl 6-16 sein. Diese Objekte beinhalten in der Regel bis zu 16 Kindobjekte ("Child").
Zu Container möchte ich nicht viel mehr als einen "Status" mitteilen, da reichen wohl drei verschiedene Farben aus. Weiterhin noch wieviele Children er hat und ob diese "an" oder "aus" sind. Dafür reichen auch drei Farben (an, aus, nicht existent). Ein konretes Beispiel in Form zweier Bilder im Anhang. Realisiert ist das (optisch natürlich ziemlich unschön) durch ein
Panel (Hintergrundfarbe für "Container" auf dem ein
DrawGrid für "Child" sitzt.
Im abgebildeten Beispiel habe ich ein TabControl für 3 Container. Das ist blöd. Ich möchte, dass der Benutzer alle auf einen Blick hat und dachte an ein
FlowPanel. Da kann ich einfach
TControl-Objekte hineinwerfen und das Teil ordnet mir das automatisch an.
Anstatt nun ständig in diesem FlowPanel mir die richtigen Unter-Controls (wie das DrawGrid oder Panel) herauszusuchen dachte ich, das ganze als eine visualle Komponentene zu basteln wäre der richtige Ansatz. Vor allem könnte das Teil dann einfach eine Referenz auf ein Container-Objekt haben und ich müsste nur noch (z.B. timergesteuert) sagen: "Aktualisiere dich!".
Wieviel Aufwand habe ich hier vor mir? In Sachen
VCL bin ich bislang immer nur froh, wenn er kompiliert, wirklich Ahnung habe ich nicht. Auch brauche ich nicht so weit zu gehen, eine tolle zur Entwicklungszeit platzierbare Komponente mit Icon in der Tool-Palette zu haben. In diesem Fall (und wohl auch in allen kommenden) würde es reichen, eine Komponente zur Laufzeit zu erzeugen und irgendwo hin zu setzen.