我目前有一个使用Delphi 7构建的SDI应用程序,我希望最终用户在运行时选择SDI和MDI之间的接口类型.我的问题是如何在运行时改变SDI和MDI之间的应用程序的行为?
目前,我知道几个使用delphi构建的应用程序,允许这样做:EMS SQL Manager和TOAD.
alt text http://i46.tinypic.com/5l0ykw.png
提前致谢.
解决方法
下载Jedi JVCL并安装它,并查看演示JvDocking“对接代码”.他们这样做.
它们意味着您实际上并不使用FormStyle = fsMDIChild,除非您需要很多问题.当您需要通过代码停靠时,MDI被“模拟”.
不要将窗口转换成框架.这是一个坏的解决方案.
对于类似MDI的环境,不存在MDI问题,请使用对接解决方案(支持对接的商业或开放源代码).我使用JVDocking,它是JEDI JVCL中包含的,它是免费的和开源的.
您可以在“停靠”和“浮动”(浮动)模式下使用表单,这样可以让您拥有停靠的IDE外观(VIsual Studio和RAD Studio),以及未脱离的IDE外观(RAD Studio未脱离,或经典的delphi 7).