delphi - 将页面控件定义为 jvcl DockerServer.custom Dock 面板。是否可以?

标签 delphi delphi-xe2 docking dockpanel jvcl

enter image description here我有一个带有左侧面板的主窗体,在窗体的中心有一个页面控件。我正在尝试将其他窗体停靠在页面控件上,正如我在 Alister Christie 制作的示例中看到的那样;问题是,将表单拖入页面控件是惰性的;我发现 JVCL 对接服务器和 JVCL 对接客户端将帮助我解决这个问题。问题是我想将页面控制分配给 JVCL 对接服务器作为自定义对接面板,但我不知道该怎么做:这里是我在mainform的oncreate事件上编写的代码

procedure Tform1.FormCreate(Sender: TObject);  
begin  
  jvdockserver1.CustomDockPanel := jvpagecontrol1;  
end;  

你能帮我一下吗? 忘了说了,我是一个编程新手,我正在使用Delphi XE2;

最佳答案

JVCL 对接服务器组件只能接受 PANEL 作为对接位置,可以是内置面板之一,也可以是您在设计时放置在表单上的自定义 TPanel。但是,如果您愿意,Jedi Docking 库将为您创建页面控件。但是,它必须是管理它们的那个,因为这些控件可能会被移动(由您或其他一些 jvdocking 代码)。

因此,如果您希望某些选项卡可见,则不应尝试使用自己的页面控件,而应使用 JVCL 附带的 Docking In Code Demo 作为示例,位于 文件夹中jvcl\examples\JvDocking\DockingInCode

这是 JvDocking 系统为您创建的选项卡,使用 CustomDockPanel,其中自定义停靠面板附加到 TPanel,然后 JvDocking 自动“创建页面控件”当你需要的时候你:

enter image description here

请注意,页面是由对接系统创建或销毁的,管理选项卡的底层工作是由 JvDocking 库完成的,而不是由您完成。

您需要做的主要事情是使用 MainFm.pas 中的代码:

tabHost := ManualTabDock( ctrl, newDocFm1,  newDocFm2);

关于delphi - 将页面控件定义为 jvcl DockerServer.custom Dock 面板。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884946/

相关文章:

delphi - cxGrid 仅限大写字母

delphi - 允许用户在 ShowMessage 对话框中选择文本

c# - 将窗体停靠在 MDI 上

objective-c - Mac OSX 应用程序 - 你如何制作 "Docking window"?

delphi - 如何配置 Indy v10 支持 IPv4 + IPv6?

delphi - 我在使用&和p时出现特殊字符

delphi - Delphi XE 中的类型转换问题

delphi - 如何使用 VCL 样式设置 StringTree 的背景颜色?

c++ - 忽略来自 WindowFromPoint() 的 HWND

Delphi跑马灯进度条