![]() |
Scrollen einschalten beim DBGrid
Wir haben einen Samsung Flip, welchen wir für unser Shopfloor einsetzen.
Auf diesem werden u.a. Daten in mehreren DBGrid's angezeigt und genau mit diesem DBGrid's bin ich im Moment am "Kämpfen". Standardmässig funktioniert bei einem DBGris das Scrollen durch die Datensätze mit dem Mausrad, nicht jedoch, wenn der Scrollbalken verschoben wird oder mit dem Finger innerhalb der DBGrid-Anzeige nach oben oder unten gewischt wird. Beim ![]() Die Datensätze werden beim Bewegen des Balkens "live" "durchgescrollt, was grundsätzlich das Ziel ist. Allerding's hat diese Lösung zwei Unschönheiten:
Im Zeitalter der Touchscreen's müsste dies doch schon von Hause aus funktionieren. Was mache ich falsch, bzw. was übersehe ich?
Delphi-Quellcode:
{ - Here is tip how to scroll DBGrid -}
//... private OldGridProc: TWndMethod; procedure GridWindowProc(var Message: TMessage); //... procedure TForm1.FormCreate(Sender: TObject); begin OldGridProc := DBGrid1.WindowProc; DBGrid1.WindowProc := GridWindowProc; end; procedure TForm1.GridWindowProc(var Message: TMessage); var Pos: SmallInt; begin OldGridProc(Message); if Message.Msg = WM_VSCROLL then //or WM_HSCROLL begin Pos := Message.WParamHi; //Scrollbox position Table1.RecNo := Pos; end; end; |
AW: Scrollen einschalten beim DBGrid
Zu den Gesten kann ich nichts sagen, aber das mit dem Scrollbar kannst du auch mit einer Interposer-Klasse lösen:
Delphi-Quellcode:
type
TDBGrid = class(Vcl.DBGrids.TDBGrid) private procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; end; procedure TDBGrid.WMVScroll(var Message: TWMVScroll); begin inherited; if not (Focused or (InplaceEditor <> nil) and InplaceEditor.Focused) then Exit; if Datalink.Active then begin case Message.ScrollCode of SB_THUMBTRACK: DataLink.DataSet.RecNo := Message.Pos; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 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