现在的想法:
1、主窗体做窗口,窗体中的图标列表都为FORM,可以实现360桌面的效果.但是拖出主窗体时,需要把图标窗体的PARENT换成nil,这时,拖动就失效了.无法衔接拖动动作。
2、主窗体做窗口,窗体中为图标,拖动时,用一窗体模拟原图标拖动,但是也是拖动事件无法从图标衔接到图标窗体上去。使用DOCK倒是可以拖出,但是我无法实现360桌面的效果。有没有好的思路能接点一下,谢谢。
1、主窗体做窗口,窗体中的图标列表都为FORM,可以实现360桌面的效果.但是拖出主窗体时,需要把图标窗体的PARENT换成nil,这时,拖动就失效了.无法衔接拖动动作。
2、主窗体做窗口,窗体中为图标,拖动时,用一窗体模拟原图标拖动,但是也是拖动事件无法从图标衔接到图标窗体上去。使用DOCK倒是可以拖出,但是我无法实现360桌面的效果。有没有好的思路能接点一下,谢谢。
主窗体里内嵌多个只显示一个图标的无边框窗体,当点击图标窗体后,切换父窗体为nil,可以拖出主窗体.除了有时会闪一下,勉强满足要求.
procedure TForm3.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
begin
if Form3.Parent=form1 then
begin
Form3.Parent:=nil;
Form3.Left:=Form1.Left+form3.left;
Form3.top:=Form1.top+form3.top;
Form3.Refresh;
end;
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, $F012, 0);end;
end;坐等高人更好的方法.