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

如何在scrollbar增加新事件

尚未結案
sam_000
一般會員


發表:27
回覆:47
積分:14
註冊:2003-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-25 11:35:04 IP:219.80.xxx.xxx 未訂閱
各位前輩好 我想在scrollbar物件增加mousemove事件但會有錯誤,煩請前輩幫我看看 謝謝 sam上 程式如下 TMyscrollbar=class(Tscrollbar) procedure onmousemove(var Message: TMessage); message WM_mousemove; end; procedure TMyscrollbar.onmousemove(var Message: TMessage); begin inherited ; Screen.Cursor:=crHandPoint; end; procedure TForm5.FormCreate(Sender: TObject); var mys:tmyscrollbar; begin mys:=tmyscrollbar.create(self);//新建tmyscrollbar物件 mys.onmousemove:=panel1.OnMouseMove ;//將panel1事件指定給 tmyscrollbar物件,這裡會出現錯誤 end;
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-25 12:43:44 IP:61.64.xxx.xxx 未訂閱
mys.onmousemove:=panel1.OnMouseMove ;//將panel1事件指定給 tmyscrollbar物件,這裡會出現錯誤 根本是多餘的一行 而且你的邏輯也不對,先練好邏輯,搞清楚你要做什麼,再來寫程式吧 不然妳會一天到晚問這種 none-sense 的問題    TMyscrollbar=class(Tscrollbar)  procedure onmousemove(var Message: TMessage); message WM_mousemove;    end;    var mys:tmyscrollbar;    procedure TMyscrollbar.onmousemove(var Message: TMessage); begin inherited ; Screen.Cursor:=crHandPoint; end;    procedure TForm5.FormCreate(Sender: TObject); var mys:tmyscrollbar;<-----不能放在這裡 begin mys:=tmyscrollbar.create(self);//新建tmyscrollbar物件 mys.Parent := Panel1; mys.top := 0; mys.Left := 0; mys.Height := Panel.Height; mys.Width := 15; end; procedure TForm5.FormDestory; begin mys.Free; end; 最多改這樣,多看書吧,隨便找幾本 Delphi 的書來看,不然幫你改再多也是浪費時間,你會根本看不懂
sam_000
一般會員


發表:27
回覆:47
積分:14
註冊:2003-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-25 14:10:55 IP:219.80.xxx.xxx 未訂閱
前輩好 謝謝前輩指點,試了前輩的方法仍然無法compile,煩請前輩看看,謝謝 我的程式如下 procedure TForm5.FormCreate(Sender: TObject); begin mys:=tmyscrollbar.create(self); mys.OnChange :=scrollbar1.OnChange ; mys.Parent:=self; mys.SetBounds(20,20,200,40);//以上執行均正常 mys.onmousemove :=panel1.OnMouseMove;//會出現'not enough actualparameter 'error
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-26 04:06:32 IP:61.64.xxx.xxx 未訂閱
引言: 前輩好 謝謝前輩指點,試了前輩的方法仍然無法compile,煩請前輩看看,謝謝 我的程式如下 procedure TForm5.FormCreate(Sender: TObject); begin mys:=tmyscrollbar.create(self); mys.OnChange :=scrollbar1.OnChange ; mys.Parent:=self; mys.SetBounds(20,20,200,40);//以上執行均正常 mys.onmousemove :=panel1.OnMouseMove;//會出現'not enough actualparameter 'error
不是已經跟你說了 "mys.onmousemove :=panel1.OnMouseMove;//會出現'not enough actualparameter 'error" 這一行是多餘的,根本不需要使用,就可以運作 你去看看書吧!不要把 Message 與 Event Property 弄混了,如果這兩的你不瞭解,那我也無從起,因為不是三言兩語可以說清楚 再說一次,去看書 如果時間不夠,那先看 Message 與 Event Property
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-26 16:06:39 IP:211.74.xxx.xxx 未訂閱
  TScrollBar= class(StdCtrls.Tscrollbar)
  public
    property OnMouseMove; //直接繼承,便可拿來用了~:D
  end;    ...
...
begin
  mys.OnMouseMove:=Panel1.OnMouseMove;
end;
sam_000
一般會員


發表:27
回覆:47
積分:14
註冊:2003-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-26 19:41:13 IP:61.58.xxx.xxx 未訂閱
謝謝jest024前輩的指導,已經可以了,亦謝謝syntax前輩的說明讓我多了解Message 與 Event Property 的差異, 謝謝 sam
系統時間:2024-06-29 5:50:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!