DBGrid捲軸問題 |
答題得分者是:GrandRURU
|
fffffoooooolll
一般會員 發表:11 回覆:12 積分:4 註冊:2006-11-30 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
Delphi中怎麼用,BCB就是怎麼用囉
另外,請問你所說的資料是在哪邊看到的呢? ===================引 用 fffffoooooolll 文 章=================== 我想知道DBGrid捲軸可否同步更新 就是我滑鼠按住捲軸拉到哪裡就顯示到哪裡 不用等滑鼠放掉在顯示 我有搜尋過類似文章 只有看到Delphi的 請問有人會BCB的嗎 謝謝 |
fffffoooooolll
一般會員 發表:11 回覆:12 積分:4 註冊:2006-11-30 發送簡訊給我 |
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=70761
我是看到這篇 可是我看不太懂 裡面寫法如下 TDBGrid = Class(DBGrids.TDBGrid) Protected procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; end; TForm1 = class(TForm) .... ... procedure TDBGrid.WMVScroll(var Message: TWMVScroll); begin if Message.ScrollCode = SB_THUMBTRACK then Message.ScrollCode := SB_THUMBPOSITION; inherited; end; |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
那個是delphi的建構式
相當於c 的 class DBGrids : public TDBGrid(TDBGrid) { protected: ...... ...... ...... } 實際動手做做看吧。 再給你一個提示: http://topic.csdn.net/t/20010823/15/252893.html 剛剛用BCB編譯出來的結果: [code cpp] class DELPHICLASS TDBGrid; class PASCALIMPLEMENTATION TDBGrid : public Dbgrids::TDBGrid { typedef Dbgrids::TDBGrid inherited; protected: HIDESBASE MESSAGE void __fastcall WMVScroll(Messages::TWMScroll &Message); public: #pragma option push -w-inl /* TCustomDBGrid.Create */ inline __fastcall virtual TDBGrid(Classes::TComponent* AOwner) : Dbgrids::TDBGrid(AOwner) { } #pragma option pop #pragma option push -w-inl /* TCustomDBGrid.Destroy */ inline __fastcall virtual ~TDBGrid(void) { } #pragma option pop public: #pragma option push -w-inl /* TWinControl.CreateParented */ inline __fastcall TDBGrid(HWND ParentWindow) : Dbgrids::TDBGrid(ParentWindow) { } #pragma option pop }; [/code] ===================引 用 fffffoooooolll 文 章=================== http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=70761 我是看到這篇 可是我看不太懂 裡面寫法如下 TDBGrid = Class(DBGrids.TDBGrid) Protected procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; end; TForm1 = class(TForm) .... ... procedure TDBGrid.WMVScroll(var Message: TWMVScroll); begin if Message.ScrollCode = SB_THUMBTRACK then Message.ScrollCode := SB_THUMBPOSITION; inherited; end;
編輯記錄
GrandRURU 重新編輯於 2010-02-23 10:13:15, 註解 嗯…跟自己寫的果然差很多‧
|
miracle0625
一般會員 發表:1 回覆:2 積分:0 註冊:2010-02-23 發送簡訊給我 |
我帳號換信箱成hotmail後就收不到信所以沒辦法登入
只好重新申請新的 我有試著自己打結果如下 可是還是有些部分不懂 我有看你打的也不是很懂 我要怎樣才能呼叫出來 class DBGrids : public TDBGrid { protected: void __fastcall WMVScroll(TWMVScroll Message); }; void __fastcall DBGrids::WMVScroll(TWMVScroll Message) { if (Message.ScrollCode == SB_THUMBTRACK) { Message.ScrollCode = SB_THUMBPOSITION; } } |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
剛剛試了一下
哈哈! 還真的不行耶! 要不要試著利用那段程式碼另外建一個VCL元件呢? ===================引 用 miracle0625 文 章=================== 我帳號換信箱成hotmail後就收不到信所以沒辦法登入 只好重新申請新的 我有試著自己打結果如下 可是還是有些部分不懂 我有看你打的也不是很懂 我要怎樣才能呼叫出來
編輯記錄
GrandRURU 重新編輯於 2010-02-23 13:23:05, 註解 無‧
|
miracle0625
一般會員 發表:1 回覆:2 積分:0 註冊:2010-02-23 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
就是上面元件盤的東西
bcb中我只找到用滑鼠滾輪的做法 其它的我也不知道了 [code cpp] //.h public: void __fastcall (__closure *OldProc)(Messages::TMessage &Message); void __fastcall NewProc(TMessage &Message); //.cpp void __fastcall TForm1::NewProc(TMessage& Message) { if (Message.Msg == WM_MOUSEWHEEL) { int z = GET_WHEEL_DELTA_WPARAM(Message.WParam); Message.Msg = WM_VSCROLL; if (z > 0) Message.WParam = SB_PAGEUP ; else Message.WParam = SB_PAGEDOWN; } OldProc(Message); } void __fastcall TForm1::FormCreate(TObject *Sender) { OldProc = DBGrid1->WindowProc; DBGrid1->WindowProc = NewProc; } [/code] |
fffffoooooolll
一般會員 發表:11 回覆:12 積分:4 註冊:2006-11-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |