请问怎么才能实现浮动窗体,就是比方可以从COOLBAR中拉到外面的那种?(5分)

  • 主题发起人 主题发起人 衫菜
  • 开始时间 开始时间
delphi自带的例子.../Delphi5/Demos/Docking

controlBar可自动实现“比方可以从COOLBAR中拉到外面的那种”
 
用Dev Express控件吧,可以拖入任一个角落
http://www.developres.com
 
建议用dxbar
 
有很多的构件可以用
 
抄的别人的:[:D]
实现DELPHI中的工具栏窗口融合技术(Docking)

经常看到一些软件上的工具栏可以拖动,或者放入一个特定的Panel中,就象DELPHI IDE一样,可以把Watch List窗口放入IDE中。
仔细研究了下,呵呵,终于可以实现了:

1,在一个Form1中,放入Panel1:
属性:
  Align:alleft;
  Docksite:true;
  UseDockManager:true;

2,添加一个新的窗体Form2,上面可以随便放些什么控件
属性:
anchors:[aktop,akbottom,akleft,akright];
  dragmode:dmautomatic;
  dragkind:dkdock

3,在Form1中包含Form2的声名
uses Unit2;

3,在窗体Form1上放置一个Button1,用于调出Form2窗体
设置Button1的OnClick事件,对应的代码如下:
  procedure TForm1.Button1Click(Sender: TObject);
  begin
   form2.Show;
  end;

procedure TForm1.Panel1UnDock(Sender: TObject; Client: TControl;
NewTarget: TWinControl; var Allow: Boolean);
begin
allow := true; //浮动
{ -- or --}
{allow := False ; //不浮动}
end;

4.用代码停放窗体
procedure TForm1.Button2Click(Sender: TObject);
begin
form2.ManualDock(Panel1,nil,alnone);
end;

到此为止,程序全部完成,So Easy...
程序在Delphi5+Windows2000(p)环境下测试通过。
 
多人接受答案了。
 

Similar threads

后退
顶部