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

startdrag,enddrag與mousedown,mouseup可並存?

尚未結案
chiehjj
初階會員


發表:21
回覆:63
積分:26
註冊:2002-12-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-23 09:51:06 IP:61.60.xxx.xxx 未訂閱
小弟在一般元件的event中startdrag,enddrag與mousedown,mouseup均設有動作
但drag與mouse僅能有一種能反映,也就是dragmode設為automatic ,startdrag及enddrag可以反應mousedown,mouseup沒法
dragmode設為manual ,mousedown,mouseup可以反應startdrag及enddrag則不行

不知前輩們有方法可讓drag與mouse並存?謝謝
syntax
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-25 00:53:22 IP:61.64.xxx.xxx 訂閱
你需要的是進階的程式設計能力

學習如何攔截與使用 message 吧!

簡單來說,可以使用
1. dragmode設為automatic
2. mousedown mouseup 用 message 來處理

===================引 用 chiehjj 文 章===================
小弟在一般元件的event中startdrag,enddrag與mousedown,mouseup均設有動作
但drag與mouse僅能有一種能反映,也就是dragmode設為automatic ,startdrag及enddrag可以反應mousedown,mouseup沒法
dragmode設為manual ,mousedown,mouseup可以反應startdrag及enddrag則不行

不知前輩們有方法可讓drag與mouse並存?謝謝
chiehjj
初階會員


發表:21
回覆:63
積分:26
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-27 14:11:30 IP:221.169.xxx.xxx 未訂閱
之前試了仍不行,煩請前輩幫忙看看

在TForm1加
type
TLabel = class(StdCtrls.TLabel)
private
procedure WMLButtonDown(var Message: {TWMLButtonDown}TWMmouse); message WM_LBUTTONDOWN;
procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
end;

procedure TLabel.WMLButtonDown(var message: TWMmouse);
begin
IF message.Msg=WM_LBUTTONDOWN THEN
begin
str:=str 'llllldown,';
end;
inherited;
end;
procedure TLabel.WMLButtonUp(var message: TWMLButtonUp);
begin
str:=str 'up;';
inherited;
end;

procedure TForm1.Label1StartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
str:=str 'strrtdarg;' ;
end;
procedure TForm1.Label1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
str:=str 'enddarg;' ;
end;
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
str:=str 'm_down' ;
end;
procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
str:=str 'm_up;' ;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(str);
end;

在label內dragmode設為automatic與manual結果都一樣
系統時間:2024-05-15 12:21:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!