全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1516
推到 Plurk!
推到 Facebook!

DBGrid如何可以做到滑鼠滾輪滾動其捲軸也會上下捲的功能嗎?

尚未結案
chungho_chang
一般會員


發表:16
回覆:7
積分:4
註冊:2003-09-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-23 12:15:31 IP:61.59.xxx.xxx 未訂閱
請問DBGrid如何可以做到滑鼠滾輪滾動其捲軸也會上下捲的功能嗎?我試過好像只能在DBGrid目前的頁面內移動,!‧‧‧煩請各位前輩解答,感激不盡‧‧
bluetree999
一般會員


發表:7
回覆:7
積分:2
註冊:2004-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-07 20:03:18 IP:218.168.xxx.xxx 未訂閱
...maker the mouse wheel works correct in TDBGrid?     Author: A D'Cruze  Category: VCL {....} public procedure AppMessage(var Msg: TMsg; var Handled: Boolean); {....} procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean); var i: SmallInt; begin {Mouse wheel behaves strangely with dgbgrids - this proc sorts this out} if Msg.message = WM_MOUSEWHEEL then begin Msg.message := WM_KEYDOWN; Msg.lParam := 0; i := HiWord(Msg.wParam); if i > 0 then Msg.wParam := VK_UP else Msg.wParam := VK_DOWN; Handled := False; end; end; // Und im Projekt Source: // And in the project source: {....} Application.OnMessage := Form1.AppMessage; {....} printed from www.swissdelphicenter.ch developers knowledge base
chungho_chang
一般會員


發表:16
回覆:7
積分:4
註冊:2003-09-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-09 11:33:38 IP:61.59.xxx.xxx 未訂閱
bluetree999 :感謝你的回應~雖然我是學C++,但是還是有一點懂Delphi的語法,你的做法是在用滑鼠的事件去達成的...所以..我用了C++ 試了一下... 以下是我的CODE: h.檔 //---------------------------------------------------------------------------    #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include  #include #include #include <Forms.hpp> #include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TDBGrid *DBGrid1; TTable *Table1; TDataSource *DataSource1; void __fastcall FormCreate(TObject *Sender); private: // User declarations TWndMethod oldDBGridProc; void __fastcall DBGridWndProc(Messages::TMessage &Message); public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif cpp.檔 //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; void __fastcall TForm1::DBGridWndProc(Messages::TMessage &Message) { short int Delta; if ( Message.Msg == WM_MOUSEWHEEL ) { Delta = Message.WParamHi; if ( Delta < 0 ) Table1->Next(); if ( Delta > 0 ) Table1->Prior(); } else oldDBGridProc(Message); } //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { oldDBGridProc = DBGrid1->WindowProc; DBGrid1->WindowProc=DBGridWndProc; } //--------------------------------------------------------------------------- 以上只供参考 還是再次感謝bluetree999 < >< >
系統時間:2024-11-22 9:10:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!