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 TDBGrid und ScrollBar (https://www.delphipraxis.net/3156-tdbgrid-und-scrollbar.html)

eddy 26. Feb 2003 12:43


TDBGrid und ScrollBar
 
Hallo Leute,

weiß jemand, wie man direkt auf den ScrollBar eines TDBGrid zugreifen kann?

In der Art:

wert := DBGrid.ScrollBar.Position

DBGrid.ScrollBar.Max := wert


mfg
eddy

Gaius 26. Feb 2003 16:21

Hallo,

beim DBGrid werden die Parameter der Scrollbar über die DataSource gesetzt. D.h. die Position der ScrollBar ergibt sich aus dem aktuell ausgewähleten Datensatz in der DataSource.
Mit DataSource.Next kannst Du beispielsweise auf den nächsten Satz positionieren.
Selbst wenn Du eine Möglichkeit findest die ScrollBars direkt zu beeinflussen, wird Dir die DataSource dazwischen pfuschen.

Mein Tipp: Versuche es über die DataSource.


Tschüss

eddy 26. Feb 2003 17:28

Hallo Gaius,

ich hätte wohl doch ein bischen mehr dazu sagen sollen.

Wenn man den Schieberegler des DBGrid.Scrollbar bewegt, passiert nichts, bis man los läßt. Beim Scrollen durch eine Datenbank sieht man also erst das Ergebnis, wenn man selbiges beendet.

Diesen Nachteil habe ich dadurch ausgeglichen, daß ich über den vorhandenen Scrollbar einen eigenen gelegt habe. Beim Bewegen des darin vorhandenen Schiebereglers scrollen die Datenzeilen vom DBGrid sofort über den Bildschirm. Scroll ich nicht zu schnell, kann ich sehen, wo ich mich in etwa befinde (z.B. wenn ich einen bestimmten Name suche).

DataSource und ScrollBar werden durch entspreichende Befehle miteinander gekoppelt, so daß der Schieberegler seine Position (=ScrollBar.Position) ändert, wenn mit der Maus oder der Tastatur in der DBGrid geblättert wird. Funktioniert soweit auch halbwegs vernünftig, solange ich kein Filter auf die Datenbank lege sowie beim Löschen und Hinzufügen von Datensätzen ScrollBar.Max korrigiere.

Diese zusätzlichen Aufwendungen möchte ich durch eine angepaßte DBGrid-Komponente vermeiden. Und dazu muß ich eben direkt auf die ScrollBar.Position .Min und .Max zugreifen (und natürlich auch auf Table.RecNo).

Also, weitere Vorschläge werden erbeten.

mfg
eddy


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