繼承TDBGrid |
尚未結案
|
kwairz
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2005-08-29 發送簡訊給我 |
unit DBGrid1;
interface uses SysUtils, Classes, Controls, Grids, DBGrids; type TDBGrid1 = class(TDBGrid) private FOnMouseWheelDown : TMouseWheelUpDownEvent; FOnMouseWheelUp : TMouseWheelUpDownEvent; { Private declarations } protected { Protected declarations } public { Public declarations } published property OnMouseWheelDown: TMouseWheelUpDownEvent read FOnMouseWheelDown write FOnMouseWheelDown; property OnMouseWheelUp: TMouseWheelUpDownEvent read FOnMouseWheelUp write FOnMouseWheelUp; { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TDBGrid1]); end; end. ------------------------------------------------------------------------------------------------------------- 然後我用此component 在其 Event OnMouseWheelDown 加入 datasource.dataset.next; OnMouseWheelUp 加入 datasource.dataset.prior; ------------------------------------------------------------------------------------------------------------- 然後為什麼達不到我要的效果... 我轉動滾輪 沒有動作... 我哪裡錯了 謝謝!! |
herbert2
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
試看這樣行不行(不須再於各程式中寫事件處理):
public function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; override; function TYourDBGrid.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; // DoMouseWheel() 是 TWinControl 之基本事件, 不知為何 Boland 未直接寫入 TDBGrid 中. |
kwairz
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2005-08-29 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |