![]() |
DBGrid horizontale ScrollBar Position
Hallo,
ist es möglich mit einem TSMDBGrid, welches mit Option RowSelect läuft, die aktuelle horizontale ScrollBar Position zu ermitteln und wieder zurück zu schreiben? Vielen Dank für eure Antworten... |
AW: DBGrid horizontale ScrollBar Position
|
AW: DBGrid horizontale ScrollBar Position
Das hatte ich bereits versucht.
Die Scrollbars werden auch richtig gesetzt, nur steht das Grid trotzdem immer wieder auf dem ersten Datensatz. |
AW: DBGrid horizontale ScrollBar Position
Moin...
verwechselst du vieleicht horizontal mit vertikal ? :gruebel: Du sprichst von Datensatz... Willst du den "letzten markierten" Datensatz wieder markieren ? (vertikal) oder zu einer entsprechenden Spalte scrollen ? (horizontal) |
AW: DBGrid horizontale ScrollBar Position
Oh sorry, da habe ich mir im letzten Post geirrt...
Ich meinte das DBGrid springt automatisch auf die erste Spalte, er sollte allerdings auf die Spalte der ScrollBar Position springen... Hier ein wenig Code, wie ich es ausführe:
Code:
var TempScrollInfo: SCROLLINFO; begin // Position der horizontalen Scrollbar TempScrollInfo.cbSize := SizeOf(SCROLLINFO); TempScrollInfo.fMask := SIF_POS; GetScrollInfo(grdData.Handle, SB_HORZ, TempScrollInfo ); //Daten neu laden... //.. //Die horizontale Scrollposition wiederherstellen SetScrollInfo(grdData.Handle, SB_HORZ, TempScrollInfo, true); |
AW: DBGrid horizontale ScrollBar Position
Was gibt GetScrollInfo denn zurück?
|
AW: DBGrid horizontale ScrollBar Position
Liste der Anhänge anzeigen (Anzahl: 1)
Folgende Werte erhalte ich:
|
AW: DBGrid horizontale ScrollBar Position
Zitat:
[edit] So müsste es gehen (mit einem Memo getestet):
Delphi-Quellcode:
[/edit]
var TempScrollInfo: SCROLLINFO;
begin // Position der horizontalen Scrollbar TempScrollInfo.cbSize := SizeOf(SCROLLINFO); TempScrollInfo.fMask := SIF_POS; GetScrollInfo(grdData.Handle, SB_HORZ, TempScrollInfo ); //Daten neu laden... //.. //Die horizontale Scrollposition wiederherstellen SetScrollInfo(grdData.Handle, SB_HORZ, TempScrollInfo, true); grdData.Perform(WM_HSCROLL, Info.nPos shl 16 or SB_THUMBPOSITION, 0); [edit2] Das SetScrollInfo kann sogar entfallen, schadet aber auch nicht. [/edit2] |
AW: DBGrid horizontale ScrollBar Position
Moin. Ich weiss das Thema ist schon alt aber ich möchte es nochmal aufgreifen und fragen wofür "Info.nPos" steht? Wo wird das deklariert und als was?
|
AW: DBGrid horizontale ScrollBar Position
Das war ein C&P-Fehler, es muss natürlich TempScrollInfo heißen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 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