Delphi-PRAXiS
Seite 1 von 2  1 2   

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/)
-   -   FMX : TStrings.clear oder setString sehr langsam (https://www.delphipraxis.net/207986-fmx-tstrings-clear-oder-setstring-sehr-langsam.html)

stalkingwolf 25. Mai 2021 11:51

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.

hoika 25. Mai 2021 11:53

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

stalkingwolf 25. Mai 2021 12:00

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.

TiGü 25. Mai 2021 12:44

AW: FMX : TStrings.clear oder setString sehr langsam
 
Profiler drauf werfen, alles andere ist Kaffeesatzleserei.

hoika 25. Mai 2021 13:42

AW: FMX : TStrings.clear oder setString sehr langsam
 
Hallo,
Zitat:

Wobei das mit dem onChange bringt nichts.
Andere Events?

stalkingwolf 25. Mai 2021 14:05

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.

TiGü 25. Mai 2021 14:15

AW: FMX : TStrings.clear oder setString sehr langsam
 
Nur Strings oder auch Objekte in die Stringlist hinzugefügt?

Uwe Raabe 25. Mai 2021 14:20

AW: FMX : TStrings.clear oder setString sehr langsam
 
Ein konkretes Beispiel zum Nachstellen wäre jetzt vielleicht angebracht.

stalkingwolf 25. Mai 2021 14:24

AW: FMX : TStrings.clear oder setString sehr langsam
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1490085)
Ein konkretes Beispiel zum Nachstellen wäre jetzt vielleicht angebracht.

Code:
combox1.items.clear;
Das soll nun nicht unfreundlich wirken, aber mehr ist es nicht. Und die Combobox ist sogar leer.

Zitat:

Nur Strings oder auch Objekte in die Stringlist hinzugefügt?
Nur Strings.

TiGü 25. Mai 2021 15:18

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:
procedure TCustomListBox.Clear;
begin
  BeginUpdate;
  try
    RealignContent;
    FToInflate.Clear;
    if Content <> nil then
      Content.DeleteChildren;
    FGroups.Clear;
    SelectionController.SetCurrent(-1);
  finally
    EndUpdate;
  end;
end;
Hängt das an der RealignContent?
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 19:45 Uhr.
Seite 1 von 2  1 2   

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