Delphi中停靠技术的实现
OnDockDrop事件的。
为了演示可停靠窗体之间相互停靠,我们先创建一个宿主窗体,取名叫TiledHost,把它的DockSite设成True。它的作用是用来装载两个DockableForm的。 首先在DockableForm中捕获DOCKCLIENT消息,在里面完成两个窗体的相互停靠 声明: private procedure CMDockClient(var Message: TCMDockClient); message CM_DOCKCLIENT; end; 实现: procedure TDockableForm.CMDockClient(var Message: TCMDockClient); var Host: TForm; begin if Message.DockSource.Control is TDockableForm then begin Host := TTiledHost.Create(Application); Host.BoundsRect := Self.BoundsRect; Self.ManualDock(Host, nil, alNone); Self.DockSite := False; Message.DockSource.Control.ManualDock(Host, nil, alNone); TDockableForm(Message.DockSource.Control).DockSite := False; Host.Visible := True; End; end; 先解释一下上面的代码,首先创建TTiledHost的实例,然后用ManualDock函数把自己停靠到TTiledHost,把Message.DockSource.Control也停靠到TTiledHost,这样就完成了窗体的相互停靠,当然,要是我们要程序产生停靠的预览效果,就在DockableForm的 更多相关文章
|
推荐文章
精彩文章
|