程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何在DBGRID或者STRINGGRID中實現用滾輪進行翻頁的功能,就象浏覽網頁一樣

如何在DBGRID或者STRINGGRID中實現用滾輪進行翻頁的功能,就象浏覽網頁一樣

編輯:Delphi
你先在窗體上放一個TApplicationEvents控件(Delphi自帶的),找到WmMouseWheelMessage事件。  
   
  下面是我實現的(這個用的是鍵盤的上下按鍵消息,你也可以改成滾動條消息)。  
   
  procedure  TMainForm.WmMouseWheelMessage(var  Msg:  tagMSG;  
     var  Handled:  Boolean);  
  begin  
     if  (DBGrid.Focused)  And  (Msg.message  =  WM_MOUSEWHEEL)  then  
         begin  
             if  Msg.wParam  >  0  then  
                 SendMessage(DBGrid.Handle,  WM_KEYDOWN,  VK_UP,  0)  
             else  
                 SendMessage(DBGrid.Handle,  WM_KEYDOWN,  VK_DOWN,  0);  
             Handled  :=  True;  
         end;  
  end;  
  -------------------------------------------------------------------------  
  問題解決,特別感謝barely(一哥)  
  DBGRID這麼寫,先加一個TApplicationEvents,  
  procedure  TForm1.ApplicationEvents1Message(var  Msg:  tagMSG;  
     var  Handled:  Boolean);  
  begin  
   if  (DBGrid1.Focused)  And  (Msg.message  =  WM_MOUSEWHEEL)  then  
         begin  
             if  Msg.wParam  >  0  then  
                 SendMessage(DBGrid1.Handle,  WM_KEYDOWN,  VK_UP,  0)  
             else  
                 SendMessage(DBGrid1.Handle,  WM_KEYDOWN,  VK_DOWN,  0);  
             Handled  :=  True;  
         end;  
  end;  
  stringgrid這麼寫  
  procedure  TForm1.ApplicationEvents1Message(var  Msg:  tagMSG;  
     var  Handled:  Boolean);  
  begin  
   if  (stringGrid1.Focused)  And  (Msg.message  =  WM_MOUSEWHEEL)  then  
         begin  
             if  Msg.wParam  >  0  then  
                 SendMessage(stringGrid1.Handle,  WM_KEYDOWN,  VK_UP,  0)  
             else  
                 SendMessage(stringGrid1.Handle,  WM_KEYDOWN,  VK_DOWN,  0);  
             Handled  :=  True;  
         end;  
  end;  
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved