AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid horizontale ScrollBar Position

Ein Thema von sega84 · begonnen am 10. Jan 2011 · letzter Beitrag vom 1. Feb 2011
Antwort Antwort
Seite 1 von 2  1 2      
sega84

Registriert seit: 18. Sep 2006
73 Beiträge
 
Delphi XE2 Professional
 
#1

DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 09:45
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...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 09:56
Wenn Du an das Handle kommst, könnten vielleicht MSDN-Library durchsuchenGetScrollInfo und MSDN-Library durchsuchenSetScrollInfo helfen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sega84

Registriert seit: 18. Sep 2006
73 Beiträge
 
Delphi XE2 Professional
 
#3

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 10:06
Das hatte ich bereits versucht.
Die Scrollbars werden auch richtig gesetzt, nur steht das Grid trotzdem immer wieder auf dem ersten Datensatz.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#4

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 10:16
Moin...

verwechselst du vieleicht horizontal mit vertikal ?
Du sprichst von Datensatz... Willst du den "letzten markierten" Datensatz wieder markieren ? (vertikal) oder zu einer entsprechenden Spalte scrollen ? (horizontal)
  Mit Zitat antworten Zitat
sega84

Registriert seit: 18. Sep 2006
73 Beiträge
 
Delphi XE2 Professional
 
#5

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 10:22
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);
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 10:35
Was gibt GetScrollInfo denn zurück?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sega84

Registriert seit: 18. Sep 2006
73 Beiträge
 
Delphi XE2 Professional
 
#7

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 10:38
Folgende Werte erhalte ich:
Miniaturansicht angehängter Grafiken
unbenannt.png  
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: DBGrid horizontale ScrollBar Position

  Alt 10. Jan 2011, 10:44
Zitat:
Remarks

The SetScrollInfo function performs range checking on the values specified by the nPage and nPos members of the SCROLLINFO structure. The nPage member must specify a value from 0 to nMax - nMin +1. The nPos member must specify a value between nMin and nMax - max( nPage– 1, 0). If either value is beyond its range, the function sets it to a value that is just within the range.
Das klingt für mich so, als müsstest Du beim GetScrollInfo-Aufruf die fMask ausweiten auf SIF_PAGE or SIF_POS or SIF_RANGE.

[edit] So müsste es gehen (mit einem Memo getestet):
Delphi-Quellcode:
  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);
[/edit]
[edit2] Das SetScrollInfo kann sogar entfallen, schadet aber auch nicht. [/edit2]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (10. Jan 2011 um 14:12 Uhr)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#9

AW: DBGrid horizontale ScrollBar Position

  Alt 31. Jan 2011, 07:38
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: DBGrid horizontale ScrollBar Position

  Alt 31. Jan 2011, 07:47
Das war ein C&P-Fehler, es muss natürlich TempScrollInfo heißen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:29 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