Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi In Grid scrollen ohne Markierung zu verlieren (https://www.delphipraxis.net/119479-grid-scrollen-ohne-markierung-zu-verlieren.html)

Moony 27. Aug 2008 08:16

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:
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;
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.

Weiß jemand eine Möglichkeit das Ganze auch an ein TCRDBGrid anwenden zu können?

Gruß, Moony

Moony 27. Aug 2008 14:34

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 15:24 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