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

关于鼠标事件的问题

尚未結案
mchakuna
一般會員


發表:41
回覆:45
積分:17
註冊:2004-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-05 15:41:51 IP:211.147.xxx.xxx 未訂閱
我加入了一个TImage, 我想利用mouse event进行各种不同的操作, 主要想利用下列三个mouse event: mouse up 和 mouse move, 頧来我增加了dragging功能,以此可以拖动TImage上的图形来显示不同部分。我不想用automatic旳dragmode, 因为这样mouse up和mouse down都被屏蔽了。我想在按下mouse down时触法drag操作    
 
  procedure TForm1.Image1MouseDown(Sender: TObject; Button:  TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  caption := 'mouse down';
  Self.Image1.BeginDrag(FALSE, 10);
end;    procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  caption := ' mouse up ';
  if  (not image1.dragging ) then 
  begin
     { do something else here }
  end;
end;
我的本意是如果鼠标按下时先触发drag操作,但由于BeginDrag中第一个参数用了FALSE, 所以只有当拖动超过10个pixels时才会真正起到拖到TImage的作用,测试时的确如此。可是,即使我在原地上不拖动,只是一直按下mouse down,似乎startdrag event也会被触发,而且只要一启动beginDrag,即使当前仍是mouse down状态,mouse up event也会立即被调用。这样实际上就无法利用mouse up了。 简单而言,能否实现这样功能:如果真的是开始拖动操作的话,所有鼠标操作都屏蔽掉,但如果只是按准备拖动而还没有远到拖动条件以前(此时begindrag都调用)放开鼠标,则mouse up仍然生效?
系統時間:2024-05-20 21:21:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!