Forum: Cross-Platform-Entwicklung
by Peter666,
21. Okt 2019
Danke,
das ganze ist nicht optimal. Im Prinzip müsste man TTileItem zu einer einfachen TObject-Klasse ändern, TTileRow durch TTileRow = class(THorzScrollBox) ersetzen und die Items in dem OnPaint Ereignis zeichnen.
Die Steuerung habe ich bis jetzt nur im Ansatz drin.
case Key of
vkOk, vkReturn:
begin
if FGrid.ItemIndex <> -1 then
with FGrid.Items do
Forum: Cross-Platform-Entwicklung
by Peter666,
21. Okt 2019
Ist nicht schlimm,
ich habe mal das ganze Projekt an die Mail gehängt. Teile von dem Code stammen aus einem anderen Thread, ich denke aber das geht in Ordnung. Neben der Rendergeschwindigkeit gibt es noch einen anderen Flaschenhals.
Für jedes Element nutze ich eine eigene TComponent mit Owner=nil. Das Befüllen des Grids dauert auf dem Android 9 Sekunden, unter Windows ist das ganze mit...
Forum: Cross-Platform-Entwicklung
by Peter666,
17. Okt 2019
Vielen lieben Dank für die Hilfe. Das mit dem TTextLayout war einen Versuch Wert, aber es hat leider auch nichts gebracht.
Unter Windows messen bringt nicht viel, das Problem ist dass es auf dem Android halt extrem langsam ist.
Peter
Forum: Cross-Platform-Entwicklung
by Peter666,
16. Okt 2019
Das wird nur aufgerufen, wenn Backbuffer als Conditional Define nicht aktiv ist. Aber ja, wenn du das direkt in die Canvas zeichnest wird es furchbar hakelig. Deswegen zeichne ich die beiden Modi ja in ein Bild das dann via Drawbitmap gezeichnet wird.
Forum: Cross-Platform-Entwicklung
by Peter666,
16. Okt 2019
Unter Android dauert es knapp 10 Sekunden für 30 Tiles. Das ist definitiv inakzeptabel. Die beiden Grafiken werden beim OnPaint Event erstellt.
TTileItem = class(TControl)
protected
FScreenScale: Single;
FLastUpdate: Cardinal;
FZoomFactor: Single;
FBackgroundColor: TAlphaColor;
FNeedUpdate: Boolean;
Forum: Cross-Platform-Entwicklung
by Peter666,
15. Okt 2019
Eigentlich wird das erstellen der Grafik in jeder Tcomponent Klasse gemacht. Das hab ich jetzt so nur erstellt, weil ich die ganze Komponente nicht mit dazupacken wollte.
Forum: Cross-Platform-Entwicklung
by Peter666,
15. Okt 2019
Hi,
ich habe hier ein ziemliches Performanceproblem mit Canvas in Firemonkey. Für eine Anzeige erstelle ich ungefähr 20 eigene Tiles die aus 2 Bildern bestehen. Einmal, wenn die Komponente den Fokus hat und einmal, wenn sie keinen Fokus hat.
Die Erstellung der 40 Bilder dauert auf einem Androiden 10 Sekunden. Auch unter Windows ist das ganze schnarchend langsam. Der Code für die Darstellung...