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/)
-   -   Delphi StrinGrid scrollen (https://www.delphipraxis.net/90763-stringrid-scrollen.html)

EarlyBird 23. Apr 2007 14:57


StrinGrid scrollen
 
Hallo,
ich arbeite gerade an einem Stringgrid, in dem ich die Daten einer Tabelle Vertikal anzeige.
Alles klappt so weit ganz gut.
Nur mit dem Scrollen bin ich nicht zufrieden.
Es scrollt mir zu langsam.
Wenn gleichzeitig ca 100 Spalten (a 30Pixel breit) und 10 Reihen angezeigt werden brauche ich für folgend schleife ca 16 Sekunden
(das Formular wird auf 2 Monitoren angezeigt)

StringGrid1.Leftcol := 0;
While StringGrid1.Leftcol <= 320 do
StringGrid1.Leftcol := StringGrid1.Leftcol + 1;

Werden nur 2 Spalten (a 30Pixel breit) angezeigt braucht die schleife nur unter 2 Sekunden.

Scrolle ich mit der Scrollbar brauche immer über 16 Sekunden, egal ob 2 oder 100 Spalten angezeigt werden.

Warum dauert es bei nutzung der Scrollbar immer etwa gleichlang egal wieviele Spalten angezeigt werden???
Wie kann ich das Scrollen insgesamt beschleunigen(bei anzeige von ca 100Spalten)??

"StringGrid1.Leftcol + 2" oder +3 usw ist mir schon klar aber für meinen Fall nicht gewollt.

Hatt jemand eine Idee oder einen guten Vorschlag??
Bin für jeden Tipp dankbar

Gruß
EarlyBird

EarlyBird 24. Apr 2007 14:27

Re: StrinGrid scrollen
 
Hat keiner eine IDEE??
Oder ist es zu kompliziert beschrieben??
Oder fehlen Infos ??

uwewo 24. Apr 2007 14:31

Re: StrinGrid scrollen
 
Warum scrollst Du nicht gleich zu der richtigen Spalte die Du suchst. Oder warum scrollst Du?

matashen 24. Apr 2007 15:01

Re: StrinGrid scrollen
 
Willst du zu einer bestimmten Stelle scrollen

sonst gehts mit

Delphi-Quellcode:
SendMessage(deingrid.Handle, WM_VSCROLL, SB_BOTTOM, 0);
gruß Matthias

uwewo 24. Apr 2007 15:27

Re: StrinGrid scrollen
 
Oder wenn Du die gesuchte Spalte ganz links haben möchtest

Delphi-Quellcode:
StringGrid.LeftCol :=

EarlyBird 24. Apr 2007 17:14

Re: StrinGrid scrollen
 
Erstmal vielen Dank für die Tipps.

Zur Erklärung:
Das StringGrid dient zur visuellen Kontrolle der Daten.
Die Spalten werden nach bestimmten Kriterien "eingefärbt".
Es ist also wichtig dass ich keine Spalten beim scrollen überspringe.
Trotzdem sollte es möglichst schnell scrollen.
Das StingGrid wird über 2 Bildschirme angezeigt.
(insgesamt 3200pixel)
und es können bis zu 300.000 Datensätze werden.

Ich habe in anderen Anwendungen schon gesehen dass das scrollen wesendlich schneller gehen kann.
Allerdings weiß ich nicht ob dort ein Grid eingesetzt wird oder ob es nur so aussieht wie ein Grid.

mit SendMessage habe ich die Geschwindigkeit noch nicht getestet werde das aber gleich machen.

Gruß
EarlyBird

uwewo 24. Apr 2007 18:03

Re: StrinGrid scrollen
 
Wenn Du 100 Spalten hast und dauernd gescrollt wird, was soll man denn da an Werten noch erkennen?
Oder dient das ganze als Diagramm?

Lannes 24. Apr 2007 18:38

Re: StrinGrid scrollen
 
Hallo,

kann mir vorstellen das darin die Bremse ist:
Zitat:

Zitat von EarlyBird
...
Die Spalten werden nach bestimmten Kriterien "eingefärbt"...


EarlyBird 24. Apr 2007 21:22

Re: StrinGrid scrollen
 
ich teste die Geschwindigkeit des Grids im Augenblick ohne die Spalten einzufärben.

Das kann es also nicht sein.

Trotzdem Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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 by Thomas Breitkreuz