Delphi5中有关程序运行时控件的可移动问题(100分)

  • 主题发起人 主题发起人 fcf
  • 开始时间 开始时间
F

fcf

Unregistered / Unconfirmed
GUEST, unregistred user!

让程序在运行状态可由用户在Form当中随意移动一个Edit框的位置。
我设置了它的DragMode和DragKind属性,但在移动时该Edit框会出来
一个窗体罩着它,而且可以把它移到此Form外。
请问,该如何使它移动时无窗体且限制于此Form中?
 
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
releaseCapture;
edit1.Perform(WM_SYSCOMMAND,$f012,0);
end;
 
谢谢o*o, 而且此做法还不能设置DragMode和DragKind属性。若设置了该属性则问题依旧。
 
接受答案了.
 
o*o:

这么做有个后遗症:它不能再响应其他事件了!怎么解决?我额外再给你100分。急!
 
这个我倒没注意。不知影响了哪个事件。
试试下面的,不用OnMouseDown,看看有没有影响。

procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in Shift then begin
releaseCapture;
edit1.Perform(WM_SYSCOMMAND,$f012,0);
end;
end;
 
没用。
影响了如OnMouseUP, OnDragDrop, OnStartDock等几乎所有的事件,都没法再触发了。
 
那就没办法了,搞了那末多事件。我这分得的有愧呀!
 
没关系,总会有办法解决的。谢谢你。
 
对于这个问题我也很想知道答案,另外,如何让EDIT控件象输入法的编码窗那样拖动?
 
后退
顶部