AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TAdvStringGrid sehr langsam bei größeren Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

TAdvStringGrid sehr langsam bei größeren Tabellen

Ein Thema von zeras · begonnen am 22. Dez 2020 · letzter Beitrag vom 24. Dez 2020
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#1

TAdvStringGrid sehr langsam bei größeren Tabellen

  Alt 22. Dez 2020, 14:07
Ich habe eine Excel Tabelle mit ca. 40.000 Zeile und 15 Spalten.
Diese lade ich ich in ein TAdvStringGrid mittels AdvGridExcelIO.
Das Laden an sich dauert nicht so sehr lange (ca. 10 sek.), aber die Manipulation der Daten dauert sehr lange.
Ich muss von Zeile zu Zeile gehen, dort Tests (diese dauern aber nicht lange) machen und dann teilweise die Farbe ändern und auch einen Zellinhalt in eine andere Zelle kopieren.
Bei ca. 100 Zeilen kein Problem, aber bei 40.000 habe ich nicht aufs Ende gewartet. Beim Abbruch war schon über eine Stunde vergangen.

Vor der Änderung habe ich
sgFileList.BeginUpdate; eingefügt und am Ende dann sgFileList.EndUpdate .
Habt ihr eine Idee? Muss ich vielleicht die Exceltabelle in ein dynamisches Array schreiben und dann am Ende nur noch die Exceltabelle neu aufbauen?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TAdvStringGrid sehr langsam bei größeren Tabellen

  Alt 22. Dez 2020, 14:49
Das AdvGrid sollte auch einen "virtual Mode" bieten.
Damit lösen sich sehr häufig Performenceprobleme die man bei einem "voll gefüllte/konfigurierten Grid" fast nie in den griff bekommt, wenn die Datenmenge zu groß ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#3

AW: TAdvStringGrid sehr langsam bei größeren Tabellen

  Alt 24. Dez 2020, 09:16
Danke für den Hinweis. Da ich das nicht gefunden hatte, habe ich TMS kontaktiert. Man meinte, dass das viel schneller gehen müsste.
Nach einigen Stunden suche bin ich auf das Problem gestoßen.
BeginUpdate und EndUpdate hatte ich ja am Anfang nicht drin. Das habe ich dann mit eingebaut. Leider ohne Erfolg.
Dann habe ich gesehen, dass ich in einer Schleife sgFileList.AutoSize := True; drin hatte. Das war das Problem.
Ich muss ja nur am Ende ein Autosize machen.
Nun dauern meine Berechnungen um die 10 Sekunden, was für mich OK ist.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TAdvStringGrid sehr langsam bei größeren Tabellen

  Alt 24. Dez 2020, 12:07
Wenn ich nicht weiß wo etwas Zeit verbrät, nutze ich AQTime (https://smartbear.com/product/aqtime-pro/overview/) (haben die Kaufversion).
einmal mit Line-Profiler nur über die eigenen Units laufen lassen, schon hat man in den meisten fällen das Problem gleich gefunden.

Ob man es auch so schnell lösen kann ist eine andere Frage ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz