關於OnMouseDown、Up、Move事件的問題. |
尚未結案
|
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
小弟在想說,在Form1上.
1.先新增一個Panel1當桌底
2.然後在Panel1上,新增30個不等的Label或是Edit等相關元件
請問,使用OnMouseDown、Up、Move的方法中,有什麼比較快的辦法可以讓所有的Label、Edit等元件移動?!
3.有沒有辦法在"沒有使用SetCapture"等就有辦法解決呢?還是說一定要使用?
p.s:不是移動一個,所有的都會跟著一起移動唷!是單單一個移動. -----------------------
請多多指教啦!!^^
------
----------------------- 請多多指教啦!!^^ |
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 小弟在想說,在Form1上. 1.先新增一個Panel1當桌底 2.然後在Panel1上,新增30個不等的Label或是Edit等相關元件 請問,使用OnMouseDown、Up、Move的方法中,有什麼比較快的辦法可以讓所有的Label、Edit等元件移動?! 3.有沒有辦法在"沒有使用SetCapture"等就有辦法解決呢?還是說一定要使用? p.s:不是移動一個,所有的都會跟著一起移動唷!是單單一個移動. ----------------------- 請多多指教啦!!^^kj68215 你好: 請參考以下的連結文章 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
這些......應該不是小弟需要的資訊耶!
講更白一點,小弟需要的是如何用滑鼠拖曳這 > 至於 class="code">
tpanel(self.Controls[i]).OnMouseMove:=mymousemove;
tpanel(self.Controls[i]).OnMousedown:=mymousedown;
tpanel(self.Controls[i]).OnMouseup:=mymouseup;
另外,你的mymouseDown、mymouseMove、mymouseUp,是只FormMouseDown、FormMouseMove、FormMouseUp,沒錯吧?! -----------------------
請多多指教啦!!^^
------
----------------------- 請多多指教啦!!^^ |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 這些......應該不是小弟需要的資訊耶! 講更白一點,小弟需要的是如何用滑鼠拖曳這 > 至於 class="code"> tpanel(self.Controls[i]).OnMouseMove:=mymousemove; tpanel(self.Controls[i]).OnMousedown:=mymousedown; tpanel(self.Controls[i]).OnMouseup:=mymouseup; 另外,你的mymouseDown、mymouseMove、mymouseUp,是只FormMouseDown、FormMouseMove、FormMouseUp,沒錯吧?! ----------------------- 請多多指教啦!!^^kj68215 你好: 其實只要把以上四篇文章的做法合在一起,就可以達到你想要的目的 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
原來如此!
很不一樣的寫法,讓小弟學到了不少!
thx.
另外在這篇的問題中, class="code">
public
{ Public declarations }
procedure setmode(index:integer;ctl:twincontrol);
:
:
:
procedure TForm1.setmode(index: integer; ctl: twincontrol);//RadioGroup1.ItemIndex
var i:integer;
begin
case index of 0:
begin
for i:=0 to ctl.Controlcount -1 do begin
tpanel(ctl.Controls[i]).OnMouseMove:=nil;
tpanel(ctl.Controls[i]).OnMousedown:=nil;
tpanel(ctl.Controls[i]).OnMouseup:=nil;
end;
end;
1:
begin
for i:=0 to ctl.Controlcount -1 do beginprocedure TForm1.setmode(index: integer; ctl: twincontrol);
var i:integer; if ctl.Controls[i].Parent = ctl then begin
tpanel(ctl.Controls[i]).OnMouseMove:=mymousemove;
tpanel(ctl.Controls[i]).OnMousedown:=mymousedown;
tpanel(ctl.Controls[i]).OnMouseup:=mymouseup;
end;
end;
end;
end;
end;
我有試過用bcb的方式去寫,但不知道對不對?↙
int i,rg1; rg1=RadioGroup1->ItemIndex; switch(rg1) { case 0: for (i=0;iControlCount-1;i ) { TPanel(Panel2->Controls[i])->&MyMouseMove; TPanel(Panel2->Controls[i])->&MyMouseDown; TPanel(Panel2->Controls[i])->&MyMouseUp; TPanel(Panel2->Controls[i])->NULL; } break; case 1: for (i=0;iControlCount-1;i ) { TPanel(Panel2->Controls[i])->NULL; TPanel(Panel2->Controls[i])->NULL; TPanel(Panel2->Controls[i])->NULL; TPanel(Panel2->Controls[i])->&MyClick; } break; }我也很像試試看hahalin提供的寫法. 很希望RaynorPao兄,能指點一下小弟! p.s:若這有超過主題範圍的話,那小弟會另開一個主題. 發表人 - kj68215 於 2004/01/27 04:36:51
------
----------------------- 請多多指教啦!!^^ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |