抄的别人的:[
![Big Grin :D :D](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f600.png)
]
实现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)环境下测试通过。