Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Wann ist die Zeit für eine eigene VCL-Komponente gekommen?

  Alt 17. Jun 2013, 15:54
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.
Miniaturansicht angehängter Grafiken
eins.png   zwei.png  
  Mit Zitat antworten Zitat