Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Scrollen per Mausrad im DBGrid

  Alt 18. Sep 2006, 16:16
Man kann dieses Verhalten auch für die gesamte Anwendung programmieren.
Delphi-Quellcode:
procedure THauptForm.HandleOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
   case Msg.message of
      WM_MOUSEWHEEL:
      begin
         if (Screen.ActiveForm.ActiveControl <> nil) and
            (Screen.ActiveForm.ActiveControl.ClassName = 'TDBGrid') then
         begin
            // die Mousewheel Message wird in einen Tastendruck umgewandelt
            Msg.message := WM_KEYDOWN;
            Msg.lParam := 0;
            if Msg.wParam > 0 then
               Msg.wParam := VK_UP
            else
               Msg.wParam := VK_DOWN;

            // wir sind noch nicht fertig, schliesslich soll der Tastendruck ausgewertet werden
            Handled := False;
         end;
      end;
   end;
end;
Beim Programmstart muss der Message-Handler "eingeklickt" werden:
Delphi-Quellcode:
procedure THauptForm.CreateForm(Sender:tObject);
begin
   Application.OnMessage := self.HandleOnMessage;
end;
Andreas
  Mit Zitat antworten Zitat