拖动控件(50分)

  • 主题发起人 主题发起人 LuckyGrass
  • 开始时间 开始时间
L

LuckyGrass

Unregistered / Unconfirmed
GUEST, unregistred user!
在运行时,如何用鼠标拖动一个BUTTON?
 
onmousedown中改变button属性
 
procedure TForm1.Button1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
ReleaseCapture;
Button1.Perform(wm_syscommand,$F012,0);
end;
 
liuly的方法确实可行,已验证.
 
onmousedown 中修改button 的位置
 
但如果要使OnClick事件也有效,则要将Liuly的代码移到OnMouseMove事件中。
我对Button1.Perform(wm_syscommand,$F012,0);不太明白,有无其它方法,
我记得有利用OnDragDrog实现的,向大家请教。
 
如果既要使button的click有效,则将button的DRAGMODLE设为dmManual,然后用MouseDown事件处理过程来开始一个标签的拖动。首先判断按下的是否是左键,而后再判断项目是否合法。如满足条件则用begin
DRAG(FALSE)开始拖动;至于ONDRAGDROP
是拖动放下时激发,用在接受方控件;但之前须通过ONDRAGOVER设置该控件的ACCEPT:=TRUE.
 
多人接受答案了。
 
后退
顶部