Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->Delphi ->正文

Delphi中停靠技术的实现

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-05 点击: [收藏] [投稿]
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

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:软件开发的管理和控制   下一篇:利用热键控制鼠标移动的一个程序

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号