![]() |
FMX : TStrings.clear oder setString sehr langsam
7x items.clear auf 7 verschiedene TStrings dauert 4 Sekunden.
Das ist doch relativ langsam. Ich habe 7 Comboboxen welche ich bei Laufzeit fülle. Erst leeren, dann eine Tstringlist füllen und per addStrings die Comboboxen füllen. Das hinzufügen geht fix, aber das clear dauert ewig. Also umgeschrieben und am Ende mit setStrings da ganz füllen. Nun dauert setStrings ewig. Übersehe ich etwas oder sind die Dinger mittlerweile so träge? Edit : das ist unter Android und unter Windows so träge. |
AW: FMX : TStrings.clear oder setString sehr langsam
Hallo,
BeginUpdate/EndUpdate benutzen. OnChange-Events prüfen und ggfs. vorher retten / auf NIL setzen / Event zurücksetzen |
AW: FMX : TStrings.clear oder setString sehr langsam
Sorry vergessen.
Beginupdate und endupdate habe ich drin. Aber onChange hatte ich übersehen. Danke für den Hinweis 8-) Wobei das mit dem onChange bringt nichts. |
AW: FMX : TStrings.clear oder setString sehr langsam
Profiler drauf werfen, alles andere ist Kaffeesatzleserei.
|
AW: FMX : TStrings.clear oder setString sehr langsam
Hallo,
Zitat:
|
AW: FMX : TStrings.clear oder setString sehr langsam
Nein andere Events gibt es nicht.
Das sind 4sek unter Windows und 14! sek unter Android. Profiler muss mich mal schlau machen. |
AW: FMX : TStrings.clear oder setString sehr langsam
Nur Strings oder auch Objekte in die Stringlist hinzugefügt?
|
AW: FMX : TStrings.clear oder setString sehr langsam
Ein konkretes Beispiel zum Nachstellen wäre jetzt vielleicht angebracht.
|
AW: FMX : TStrings.clear oder setString sehr langsam
Zitat:
Code:
Das soll nun nicht unfreundlich wirken, aber mehr ist es nicht. Und die Combobox ist sogar leer.
combox1.items.clear;
Zitat:
|
AW: FMX : TStrings.clear oder setString sehr langsam
Ja, verstehe nicht?
Debug-DCUs an und in die FMX debuggt?
Code:
FMX.ListBox.TCustomListBox.Clear
FMX.ListBox.TCustomListBox.TListBoxStrings.Clear
Delphi-Quellcode:
Hängt das an der RealignContent?
procedure TCustomListBox.Clear;
begin BeginUpdate; try RealignContent; FToInflate.Clear; if Content <> nil then Content.DeleteChildren; FGroups.Clear; SelectionController.SetCurrent(-1); finally EndUpdate; end; end; SelectionController.SetCurrent(-1);? Dauert es lange im EndUpdate? Lasst euch doch nicht immer alles aus der Nase ziehen. Mal so ein bisschen Eigeninitiative zeigen. Am Ende ist es wieder so ein: "Hey, ich habe die 127 anstehenden Windows-Updates durchinstalliert und nach 43 Monaten mal neugestartet, jetzt ist wieder alles gut!" Komm, sei nett und frickle uns ein kleines Beispielprojekt zusammen. Formular, Combobox, ein Button zum Löschen. Projekt zippen und hochladen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 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