![]() |
Datenbank: MySQL • Zugriff über: Corelab MyDAC
In Grid scrollen ohne Markierung zu verlieren
Hallo zusammen,
ich verwende für das Scrollen mit der Mousse eine Routine, damit beim Scrollen in einem DBGrid nicht die bereits getätigte Markierung verloren geht. Die sieht folgendermaßen aus:
Delphi-Quellcode:
Der Part mit dem TDBGrid funktioniert einwandfrei. Somit habe ich die Routine um das TCRDBGrid erweitert. Mit diesem Grid passiert jedoch nichts. Es geht die Markierung verloren und er scrollt einfach durch die Datensätze.
procedure TfmMain.AppMessage(var Msg: TMsg; var Handled: Boolean);
var DBGrid : TDBGrid; CRDBGrid : TCRDBGrid; begin if not fmMain.Showing then Exit; {Mouse wheel behaves strangely with dbgrids - this proc sorts this out} if Msg.message = WM_MOUSEWHEEL then begin if (Screen.ActiveControl is TDBGrid) or (Screen.ActiveControl is TCRDBGrid)then begin if Screen.ActiveControl is TDBGrid then begin DBGrid := Screen.ActiveControl as TDBGrid; if Msg.wParam > 0 then Msg.wParam := SendMessage(DBGrid.Handle, WM_VSCROLL, SB_LINEUP, 0) else Msg.wParam := SendMessage(DBGrid.Handle, WM_VSCROLL, SB_LINEDOWN, 0); end else if Screen.ActiveControl is TCRDBGrid then begin CRDBGrid := Screen.ActiveControl as TCRDBGrid; if Msg.wParam > 0 then Msg.wParam := SendMessage(CRDBGrid.Handle, WM_VSCROLL, SB_LINEUP, 0) else Msg.wParam := SendMessage(CRDBGrid.Handle, WM_VSCROLL, SB_LINEDOWN, 0); end; Handled := False; end; end; end; Weiß jemand eine Möglichkeit das Ganze auch an ein TCRDBGrid anwenden zu können? Gruß, Moony |
Re: In Grid scrollen ohne Markierung zu verlieren
Ich habs gelöst!
Wen's interessiert: Die Handled - Variable muß anstatt am Ende, beim TDBGrid auf False und beim TCRDBGrid aber auf True gesetzt werden. Gruß, Moony |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 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