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

Delphi中停靠技术的实现

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-05 点击: [收藏] [投稿]

怎么?窗体又不见了?那当然了,我们只是讲了OnDockOver,还没详细讲解OnDockDrop呢,它才是决定停靠窗体在哪里出现的罪魁祸首:

OnDockDrop(Sender: TObject;

  Source: TDragDockObject; X, Y: Integer);

参数和OnDockOver差不多,只是少了State: TDragStatevar Accept: Boolean

它是在停靠窗体进入被停靠控件时发生的,作用是控制停靠窗体的最终位置。下面添加如下代码:

procedure TMainForm.LeftDockPanelDockDrop(Sender: TObject;

  Source: TDragDockObject; X, Y: Integer);

Begin

  LeftDockPanel.Width := ClientWidth div 3;

  LeftSplitter.Left := LeftDockPanel.Width + LeftSplitter.Width;

End;

现在再运行程序,哇塞,成功了。出现了一个和DelphiIDE完全一样的停靠窗体,上面是两条横线,用来把它拖出来,右上角有一个小X是用来关闭的。

不过好景不长,当我们把它关闭时,装载DockableFormLeftDockPanel不能还原,还是霸占着主窗口的客户区,怎么办?

嘻嘻,忘了告诉你们了,其实Delphi早就为我们作好了一切。

请打开DockableForm的关闭事件,你会发现原来当你点击右上角那个小X关闭DockableForm时,它会触发DockableFormOnClose事件,在OnClose事件中把LeftDockPanel

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



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

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