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 Position im TDBAdvGrid (https://www.delphipraxis.net/46390-position-im-tdbadvgrid.html)

meierotto 24. Mai 2005 10:56


Position im TDBAdvGrid
 
Ich hab noch viele viele Fragen zum TDBAdvGrid aus TMS :wall:

Wenn ich mit PageMode=True arbeite (das muss ich, um eine höhere Geschwindigkeit zu erreichen), wird der Scrollbalken nur noch in 3 Positionen (oben, mitte, unten) angezeigt. Das macht eine Übersicht, wo im Grid man sich gerade befindet, unmöglich. Ich hab lange gesucht und keine Abhilfe gefunden. :( Also kam mir die Idee, in einem Label die Position anzuzeigen (z.B. Zeile 1 von 999999). Kein Problem mit Row und Rowcount. Dachte ich. Ist aber doch ein Problem, da Row immer nur die sichtbare Zeile zurückgibt. Auch mit Realrowindex oder Getrealrow bin ich noch nicht weiter gekommen.

Kann mir vielleicht jemand weiterhelfen??

meierotto 24. Mai 2005 13:11

Re: Position im TDBAdvGrid
 
:cyclops: Da sich ja hier keiner mit mir unterhält (regen sich ja alle lieber über die "Internet-Gebühren" auf) geb ich mir und den eventuell Interessierten selbst die Antwort.
Und zwar muss man auf das zum Grid gehörende Dataset zugreifen:
Code:
grd.DataSource.DataSet.RecNo
Ich bedanke mich bei mir selbst :lol:

Bernhard Geyer 24. Mai 2005 13:19

Re: Position im TDBAdvGrid
 
Ich führe auch mal Selbstgespräche... :???:

Zitat:

Zitat von meierotto
Wenn ich mit PageMode=True arbeite (das muss ich, um eine höhere Geschwindigkeit zu erreichen), wird der Scrollbalken nur noch in 3 Positionen (oben, mitte, unten) angezeigt. Das macht eine Übersicht, wo im Grid man sich gerade befindet, unmöglich. Ich hab lange gesucht und keine Abhilfe gefunden.

Dies ist by Design. Arbeitest Du im PageMode wird nur soviel von der aktiven Query vom Server per Fetching geladen, wie auch wirklich benötigt werden. Das hat zur Folge das die Anzahl der Records nicht bestimmbar (RecordCount liefert -1). Erst wenn bis zum Ende geladen wurde (Aufruf von Last) oder clientseitige Curser verwendet werden (Performance, das erst alles wieder zum Client geladen werden muss) könnte der Scrollbalken entsprechend der Position angepaßt werden und nicht nur Anfang/Mitte/Ende.

meierotto 24. Mai 2005 14:04

Re: Position im TDBAdvGrid
 
:hi: Danke, dass hier doch jemand mit mir redet.
Um es kurz zu machen: Der Cursor wird clientseitig verwendet, die Daten werden bis zum Ende geladen und RecordCount liefert die korrekte Zahl der Datensätze zurück. Trotzdem ist der Scrollbalken wie er ist.

AirJordan 16. Jun 2005 11:16

Re: Position im TDBAdvGrid
 
Hi Meierotto,

"schreibe" (rede) gerne mit dir. Setze die TMS Komponenten nämlich auch sehr oft ein. Das Verhalten ist in der Tat manchmal etwas ungewöhnlich um nicht zu sagen fehlerhaft.

Ich habe zB in Verbindung mit den Nav.Schaltern und einem DBGrid das Problem, das der RowSelect-Balken immer auf dem ersten Datensatz stehen bleibt und beim Vorblättern mit der Nav.Leiste die Datensätze nach oben aus der Liste verschwinden, anstatt das der RowSelect-Balken nach unten wandert. Das nur am Rande. Blättert man mit dem Cursort klappt alles. Ich mache dafür mal einen neue Beitrag auf.... :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 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