procedure TForm1.MoveControl(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TempPanel : TPanel;
Control : TControl;
begin
//Release the MOUSEDOWN status
ReleaseCapture;
if Sender is TWinControl then
//wincontrol具有句柄,可以直接拖动
TWincontrol(Sender).Perform(WM_SYSCOMMAND,$f019,0)
else
//没有句柄的空间把它放在 TPanel上
try
Control := TControl(Sender);
TempPanel := TPanel.Create(Self);
with TempPanel do
begin
//用TempPanel替换控件
Caption := '';
BevelOuter := bvNone;
SetBounds(Control.Left,Control.Top,
Control.Width,Control.Height);
Parent := Control.Parent; //把控件放在TempPanel上
Control.Parent := TempPanel; //移动TempPanel,同时移动控件
Perform(WM_SYSCOMMAND,$F019,0); //把控件放在目的地
Control.Parent := Parent;
Control.Left := Left;
Control.Top := Top;
end;
finally
TempPanel.Free;//释放temppanel
end;
end;
Shift: TShiftState; X, Y: Integer);
var
TempPanel : TPanel;
Control : TControl;
begin
//Release the MOUSEDOWN status
ReleaseCapture;
if Sender is TWinControl then
//wincontrol具有句柄,可以直接拖动
TWincontrol(Sender).Perform(WM_SYSCOMMAND,$f019,0)
else
//没有句柄的空间把它放在 TPanel上
try
Control := TControl(Sender);
TempPanel := TPanel.Create(Self);
with TempPanel do
begin
//用TempPanel替换控件
Caption := '';
BevelOuter := bvNone;
SetBounds(Control.Left,Control.Top,
Control.Width,Control.Height);
Parent := Control.Parent; //把控件放在TempPanel上
Control.Parent := TempPanel; //移动TempPanel,同时移动控件
Perform(WM_SYSCOMMAND,$F019,0); //把控件放在目的地
Control.Parent := Parent;
Control.Left := Left;
Control.Top := Top;
end;
finally
TempPanel.Free;//释放temppanel
end;
end;
解决方案 »
- 有关httppost编程
- 有没有表格中带进度条的控件?就像是CuteFtp的效果--把所有的正在下载的内容列出,中间包括进度
- 在FastReport中,怎么样实现把下一页打在上一页的背面?
- frreport的PrintPreparedReport过程该怎么用??怎么我一用就报错!谢谢
- c/s结构应用中,不装oracle client,如何访问数据库服务器
- 有关BMP与RES
- 关设置打印机参数问题???在线等待!!!
- 请问delphi怎么生成release版的可执行文件啊?
- 如何将多种文件集成在一个流中,并读出
- 判断字符串的问题
- :) 一个非常简陋的用windowsAPI写的窗口的窗体为什么不能刷新的?(Win2000,delphi6.0)
- 请帮个忙
Shift: TShiftState; X, Y: Integer);
begin
inherited mousedown(button,shift,x,y);
if button=mbleft then
begin
ReleaseCapture;
(self as TWinControl).Perform (
wm_SysCommand, sc_DragMove, 0);
end;
end;
//移动控件的代码