Delphi中的选项卡式文档界面

时间:2011-01-16 02:22:49

标签: delphi user-interface delphi-2010 docking tabbed-document-interface

我正在为我的下一个项目考虑不同的用户界面布局,我想知道是否有集成或第三方框架允许我创建选项卡式文档界面?

为了澄清,我想要的不是某种对接机制或者是MDI接口,而是主要是一个框架,它允许我有一个主要形式和一个或多个辅助形式,它们将在主要形式中显示为制表符。

虽然我说我不想要任何类型的对接机制,但我做了一个实际使用它的小型测试应用程序。我得到的结果非常接近我想要的。首先,我想念一些功能,如每个标签上的关闭按钮。其次,我必须创建自己的某种框架,以便自动执行所有任务,例如创建和销毁选项卡,将每个新表单与其选项卡相关联,在关联的选项卡关闭时释放表单等等。我不是说我做不到,但我想知道是否有任何现成的框架已经拥有所有这些功能。虽然我更喜欢开源解决方案,但也欢迎使用商业解决方案。

5 个答案:

答案 0 :(得分:7)

此处不强制使用第三方组件。

您可以使用标准Delphi控件来获得所需内容:

  • 在表单上放置一个TPageControl(来自Win32选项卡);
  • 将其Align属性设置为alClient;
  • 右键单击控件,然后选择“新页面”以添加新页面。

然后不要在表单上编写“选项卡式”界面,而是在框架上编写。

您还可以按代码创建页面,在每个页面中显示框架。

答案 1 :(得分:6)

我认为标签界面没有任何框架,但是对于每个标签上带有关闭按钮的漂亮标签/页面控件,请检查以下内容:

  1. rkSmartTabs,它模拟Google Chrome浏览器的标签式用户界面。它是开源的。
  2. TAdvOfficePager,MS Office风格。
  3. 希望它有所帮助。

答案 2 :(得分:1)

我建议使用工具栏(TToolBar或任何类似的)和框架(TFrame)来模仿选项卡式界面,原因?!那么Delphi正在跨越平台(毫无疑问)他们将移植大多数(如果不是全部)Delphi附带的标准VCL,那么为什么不将其用作优势?

当用户点击工具栏中的按钮并销毁前一个按钮(如果存在)时,只需创建框架(动态),这样就可以将内存使用量保持在最低限度,应用程序启动/关闭时间将非常好,在另一方面,如果你选择使用(cx)TPageControl,TAdvPager等,你可能会遇到这样一种情况,即一种形式(主要我怀疑)会有这么多的VCL,它将需要很多不必要的记忆,它会很慢。

使用框架有很多优点,如果您的应用程序中某处需要显示“标签”,您可以简单地动态创建所需的框架,无需额外的工作即可使用它。

无论如何,这是我的两分钱,希望这会有所帮助。

答案 3 :(得分:0)

我推荐TvjPageList,它是JVCL组件套件的一部分。它是开源的,似乎符合您的要求。

答案 4 :(得分:0)

我使用JVCL JvDocking及其选项卡式对接系统来制作类似MDI的应用程序。

除了将它们放在标签中之外,您还可以浮动或平铺窗户。