可停泊窗口在office系列软件及delphi和vb等软件中经常见到,通过停泊窗口可以改善界面的美观效果。在delphi中创建可停泊窗口比较简单,基本分为两个步骤:一建立停泊区即可以放置停泊对象的区域继承TWinControl的控件都可以做为停泊区,只需设置它的DockSite和Autosize属性,DockSite设置为true即可以接受停靠,autosize设置为True时当停泊对象离开停泊区时停泊区会自动改变大小。二设置停泊对象的相关属性。DragKind设置为dkDock表示接下来的操作是一个停靠操作而不是普通的拖放操作,DragMode设定为dmAutomatic表示当鼠标在工具条上点击并移动后,会自动发起拖放动作。这两步就可以创建简单的停靠。在停靠中会引发停靠区的onDragOver和onDragDrop事件,onDragOver有个参数accept标识是否接受停泊,onDragDrop表示停泊。停泊对象在停靠中会引发onStartDock
和onenddock事件表示停泊开始和结束。下面是一个小例子。
新建工程,在窗体上放置Toolbar控件和timer控件,在toolbar上新建两个按钮。属性设置如下:
TForm1 DockSite=true autosize=true
Toolbar1 DragKind=dkDock dragmode=dmAutomatic
timer1 interval=200
事件代码如下:
procedure TForm1.ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
begin
ToolBar1.Align:=alTop; //设置停靠后toolbar的放置位置据顶
ToolB