使用dbgrid時, 如何用mouse的中間鍵轉動到另一頁 |
尚未結案
|
MatthewSong
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-24 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
原始的dbgrid 並沒有開放 wheel (瀼輪)的介面), 你必須自己對 DBgrid .pas 修改加入以下的功能
在 public 中加一組定義 public { Public declarations } .... // 加入滾輪功能 function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos:TPoint): Boolean; override; 在 {DBGrid } 下任一位置加上 function TDBGrid.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; begin if WheelDelta > 0 then datasource.DataSet.Prior; if wheelDelta < 0 then DataSource.DataSet.Next; Result := True; end; 重新編譯即可 要不, 改用這組TWDBGrid 取代 DBGrid, 已內鍵滾輪功能 http://delphi.ktop.com.tw/board.php?cid=31&fid=77&tid=91205 另外, 你這篇應該發在 vcl討論區比較恰當, 並非 dbgrid 就是有關資料庫討論, 我幫你移過去
編輯記錄
P.D. 重新編輯於 2009-04-17 18:55:27, 註解 無‧
|
MatthewSong
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-24 發送簡訊給我 |
謝謝 p.d 大大
不好意思放錯區 我想問, 這樣不用加一個 event嗎 ? 只加一個function就可以 知道是在用wheel? 還是本身dbgrid就有但沒有開放 ? 謝謝 ===================引 用 P.D. 文 章=================== 原始的dbgrid 並沒有開放 wheel (瀼輪)的介面), 你必須自己對 DBgrid .pas 修改加入以下的功能 在 public 中加一組定義 public { Public declarations } .... // 加入滾輪功能 function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos:TPoint): Boolean; override; 在 {DBGrid } 下任一位置加上 function TDBGrid.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; begin if WheelDelta > 0 then datasource.DataSet.Prior; if wheelDelta < 0 then DataSource.DataSet.Next; Result := True; end; 重新編譯即可 要不, 改用這組TWDBGrid 取代 DBGrid, 已內鍵滾輪功能 http://delphi.ktop.com.tw/board.php?cid=31&fid=77&tid=91205 另外, 你這篇應該發在 vcl討論區比較恰當, 並非 dbgrid 就是有關資料庫討論, 我幫你移過去 |
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
用繼承也很方便。
不過如你所願,需自訂函數。 procedure TGridViewForm.FormCreate(Sender: TObject); begin inherited; TStringGrid(DBGrid1).onMouseWheelDown := DoMouseWheelDown; TStringGrid(DBGrid1).onMouseWheelUp := DoMouseWheelUp; end; procedure TGridViewForm.DoMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin Handled := True; DBGrid1.DataSource.DataSet.Next; end; procedure TGridViewForm.DoMouseWheelUp(Sender: TObject;Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin Handled := True; DBGrid1.DataSource.DataSet.Prior; end; |
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
您好
在網站中已經有很多相關主題喔!請參考! http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=62090
------
Pillar Wang |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |