关于鼠标事件的问题 |
尚未結案
|
mchakuna
一般會員 發表:41 回覆:45 積分:17 註冊:2004-01-07 發送簡訊給我 |
我加入了一个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仍然生效? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |