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

如何使DBGrid可以使用MouseWheel?

答題得分者是:harpist
irvinehing
初階會員


發表:77
回覆:79
積分:31
註冊:2003-11-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-12 15:05:57 IP:218.208.xxx.xxx 訂閱
請問如何使DBGrid可以使用MouseWheel?
當滾輪轉動時,紀錄也同時移動。

我知道站上有很多Delphi的例子,但是沒有BCB的,所以請求給予一各BCB的例子。
謝謝!
harpist
資深會員


發表:3
回覆:251
積分:430
註冊:2002-10-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-12 15:34:14 IP:211.21.xxx.xxx 未訂閱
首先你必須要先抓到 MouseWheel

先在你的Form Class 裡面宣告如下

TWndMethod oldDBGridProc; //儲存原始訊息處理函式
void __fastcall DBGridWndProc(Messages::TMessage &Message); //攔截訊息函式

然後可以在 FormCreate 裡面去換掉原來的訊息處理函式

oldDBGridProc = DBGrid1->WindowProc;
DBGrid1->WindowProc = DBGridWndProc;

再來實作你的的訊息處理函式操作你的 DataSet

void __fastcall TForm::DBGridWndProc(Messages::TMessage &Message)
{
short int Delta;
if ( Message.Msg == WM_MOUSEWHEEL )
{
Delta = Message.WParamHi;
if ( Delta < 0 )
ADOQuery1->Next();
if ( Delta > 0 )
ADOQuery1->Prior();
}
else
{
oldDBGridProc(Message); //記得要送回給原來的訊息處理函式
}
}

===================引 用 文 章===================
請問如何使DBGrid可以使用MouseWheel?
當滾輪轉動時,紀錄也同時移動。

我知道站上有很多Delphi的例子,但是沒有BCB的,所以請求給予一各BCB的例子。
謝謝!
------
~§~迷時師渡,悟了自渡~§~
系統時間:2024-11-26 1:22:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!