Einzelnen Beitrag anzeigen

sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

[FMX] eigene Komponente (Aufbau & Performance)

  Alt 9. Nov 2016, 10:39
Hallo,

ich stehe derzeit vor einem Problem, welches mir wirklich Kopfzerbrechen bereitet.

Kurz zur Situation:

Ich will eine Komponente erstellen, welche in der GUI dargestellt wird.
Diese enthält viele Daten, welche angezeigt werden müssen. Bis zum Zeitpunkt der Erstellung steht nicht fest, wie viele das sein werden. Einige der Werte ändern sich im 500ms-Takt.
Es werden bis zu 100 dieser Komponenten gleichzeitig dargestellt werden müssen und werden in einer ScrollBox liegen.


Ich stehe nun vor der Entscheidung, wie ich die Komponente aufbaue:
Nachfahre von TStyledControl -> optischer Aufbau und füttern der Werte in die GUI über die FMX-Styles
Habe ich bereits mal mit angefangen, aber beim Scrollen der ScrollBox war die CPU-Auslastung wirklich hoch
Nachfahre von ??? -> alle Elemente (TText, TLayout, TRectangle, etc.) selbst erstellen und mit Werten füttern
Habe ich hier nicht auch ziemliche Performance-Schwierigkeiten, da super viele Elemente verwaltet werden müssen?
Nachfahre von ??? -> selbszeichnen der Komponente
Da bin ich gerade dran, aber ich habe Schwierigkeiten, durch den Paint-Ablauf durchzublicken. Ich möchte ja schliesslich nicht bei Änderung eines Wertes den gesamten Komponentenbereich neuzeichnen, sondern nur den entsprechenden Bereich. Leider bekomme ich das irgendwie nicht hin
Habt ihr da nützliche Tutorials oder ähnliches, wo ich mich durchwühlen kann?
Welche dieser Varianten würdet ihr wählen, um die Performance der Anwendung möglichst schlank zu halten? Habt ihr evtl. andere Vorschläge?


Ein anderes Problem ist folgendes:

Die Komponenten sollen in einem TFlowLayout (zu XE2-Zeiten war das ein TFlowPanel) liegen und dieses wiederrum in einer TScrollBox.
Leider hat das FlowLayout keine Eigenschaft wie Autosize! Damit die ScrollBox ihre ScrollBars entsprechend dem Inhalt anpasst, müssen sich die Abmessungen des FlowLayouts ja seinen Childs anpassen. Leider gibt es scheinbar keine passende Eigenschaft dafür.




Ich danke euch schonmal im Vorraus!
Björn
  Mit Zitat antworten Zitat