德尔福。如何使用 TreeView 移动框架?

标签 delphi treeview frame shift

请帮我解答一下我的问题。

我有TreeView和Frames,如果我点击TreeView的某个项目,如何移动它们?

使用 PageControl (PageControl1.Pages[i].TabVisible := false;) 代替框架更好还是框架更适合?

非常感谢!

最佳答案

回答您的第一个问题“如何...使用TreeView?”:实现TreeView 的OnChange 事件。节点参数指的是新选择的项目。

关于你的第二个问题“我应该使用框架还是PageControl?”:嗯,一个并不排除另一个,你完全可以使用两者。事实上,我建议当您多次使用此类 TabPage 的内容时这样做。在这些情况下,请将具有 Align = alClient 的框架放置在 TabPage 上。

框架对于设计任意可重复使用的容器很有用。例如:您可以在 PageControl 的每个页面上设置相同的 FrameType,假设它们看起来都相同,但每个页面使用不同的数据。

使用框架的另一个可能的小优点是不会对 TabPage 上的所有控件感到困惑。

但是,如果每个 TabPage 在视觉样式或控件布局方面都是唯一的,那么不使用框架并直接在 PageControl 上设计页面是完全可以的。

关于转移部分:我不太明白您想要通过设置选项卡的可见性来完成什么,但是基于节点转移到另一个页面(完全取决于您的实现)可能很简单:

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  PageControl1.ActivePageIndex := Node.Index;
end;

关于德尔福。如何使用 TreeView 移动框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231228/

相关文章:

python - 在 Tkinter Gui 中创建框架类

java - 等待 AWT 重绘完成

multithreading - 如何终止具有单独消息循环的线程?

delphi - Delphi 使用 TIdTCPServer/TIdTCPClient 组件丢失数据

javascript - ivh 树 - 禁用节点选择

C# TreeView.GetNodeAt() 单击图像的问题

android - MediaMetadataRetriever 替代品?

json - Delphi对象转json字符串如何忽略空字段和null字段

multithreading - CodeSite 类别和线程

python - 如何使 ttk.Treeview 的行可编辑?