Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Langsame Aktualisierung wenn Gestenmanager vielen Elementen zugeordnet ist (https://www.delphipraxis.net/215415-langsame-aktualisierung-wenn-gestenmanager-vielen-elementen-zugeordnet-ist.html)

blawen 27. Jun 2024 17:11

Langsame Aktualisierung wenn Gestenmanager vielen Elementen zugeordnet ist
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ein TGridPanel, auf welchem 50 TMemos platziert sind.
Diese sind wiederum dem Gestenmanager "GestureManager1" zugeordnet und genau mit diesem habe ich ein Problem.

Die Anwendung funktioniert grundsätzlich, allerdings ist die Ladezeit sehr hoch - sprich wenn das Formular aufgerufen wird, vergehen mehrere Sekunden, bis dieses angezeigt wird.
Ohne den Gestenmanger geht das Formular nahezu unverzögert auf.

Bei meinen Versuchen habe ich die TMemos sowohl statisch als auch dynamisch erstellt und in beiden Fällen kann ich keinen Merklichen Zeitunterschied feststellen.
Wenn die Anzahl Zuweisungen < 10 ist, merkt der Anwender nichts, was darüber liegt irritiert, weil die Anwendung zu hängen scheint.


Frage:
Gibt es einen Weg, um die Zuweisung zu vereinfachen, bzw. die Geschwindigkeit zu erhöhen?
Oder gibt es einen viel besseren Ansatz?

Gruss
Blawen

Anhang 56965

Uwe Raabe 27. Jun 2024 19:57

AW: Langsame Aktualisierung wenn Gestenmanager vielen Elementen zugeordnet ist
 
Da fehlt noch etwas an Informationen, denn wenn ich 50 Memos mit einem GestureManager verbinde, dann geht das gefühlt genauso schnell auf wie ohne.

Welche Gesten sind denn in den Memos jeweils aktiviert?

blawen 27. Jun 2024 21:49

AW: Langsame Aktualisierung wenn Gestenmanager vielen Elementen zugeordnet ist
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Uwe Raabe (Beitrag 1538323)
Da fehlt noch etwas an Informationen, denn wenn ich 50 Memos mit einem GestureManager verbinde, dann geht das gefühlt genauso schnell auf wie ohne.

Welche Gesten sind denn in den Memos jeweils aktiviert?

Hallo Uwe

Im eigentlichen Projekt sind es Left, Right, Up, Down und Curlique.

Im Anhang habe ich ein Minimalprojekt und ein Video angehängt.

Neben der Hauptform besitzt es die beiden Formen FVorgabe, in welchem die Memos bereits enthalten sind und FManuell, in welcher die Memos dynamisch erzeugt werden.
In diesem Formular erzeugt der Button1 zuerst die Memos und der Button2 weist den Gestenmanager zu.
Das Video zeigt diesen Fall und man sieht sehr gut, wie die Memos kurz aufleuchten, wenn der Gestenmanger zugewiesen wird.

Die deutliche Zeitverzögerung habe ich in beiden Fällen nur beim ersten Öffnen des Formulars, beim zweiten Öffnen erfolgt dies unverzögert.

Hast Du mir eventuell einen Tipp, was ich anders machen muss?

Gruss
Roland

Uwe Raabe 27. Jun 2024 23:13

AW: Langsame Aktualisierung wenn Gestenmanager vielen Elementen zugeordnet ist
 
Das Problem schnellste was ich hier herausholen kann ist immer noch die statische Zuweisung (ca. 1000 ms).

Die beiden Methoden ErzeugeMemos und GestenManagerZuweisen kann man noch beschleunigen, wenn man sie in ein GridPanel1.LockDrawing/UnlockDrawing klammert (zusammen ca. 2000 ms).

Etwas schneller wird es noch, wenn der GestureManager direkt nach dem TMemo.Create, aber vor dem Zuweisen des Parent gesetzt wird (ca. 1700 ms).

jaenicke 28. Jun 2024 06:35

AW: Langsame Aktualisierung wenn Gestenmanager vielen Elementen zugeordnet ist
 
Zitat:

Zitat von blawen (Beitrag 1538315)
Oder gibt es einen viel besseren Ansatz?

Das sieht visuell nach einem Paradebeispiel für die TVirtualStringTree aus. Gesten habe ich darin bisher nur manuell implementiert, aber zumindest kann man diese über die Eigenschaft Touch konfigurieren, weil das weiter oben im Komponentenbaum implementiert ist. Insofern wäre es einen Versuch wert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz