delphi - 基于TreeView创建自己的组件(TTreeNode问题)

标签 delphi treeview lazarus

只需使用以下命令访问我的自定义 TreeView:

MyTreeView1.Selected.MyOwnProperty := 'something';

所以,我想做的就是制作与 TreeView 相同的组件,但是我需要将我自己的属性添加到 TreeView 的所有 TreeNodes 中。

如果我再问一次,有人可以解释一下如何使用“TTreeNodes 的数据属性来指向对象”吗?有人可以解释如何向其中保存一些信息(例如姓名和年龄)以及如何从选定的 TTreeNode 获取此信息吗?

最佳答案

至少在 XE 中,您可以使用 OnCreateNodeClass 覆盖 TTreeView 树节点的创建。属性来创建自定义 TTreeNode。

例如:

type
  TMyTreeNode = class (TTreeNode)
  //
  end;

procedure TMyForm.OnCreate(Sender: TObject);
begin
  MyTreeView.OnCreateNodeClass := OnCreateNodeClass;
end;

procedure TMyForm.OnCreateNodeClass(Sender: TCustomTreeView; 
  var NodeClass: TTreeNodeClass);
begin
  NodeClass := TMyTreeNode;
end;

然后,您可以子类化 TTreeView 来更改 Selected 以返回您的树节点类。

关于delphi - 基于TreeView创建自己的组件(TTreeNode问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941973/

相关文章:

lazarus - 为什么加载网格时 TStringGrid 列标题单元格中的单元格属性会发生变化?

由于项目的 DSK 文件取自另一台计算机,Delphi 项目具有 APPCRASH?

delphi - dcc32:*。cfg中的环境变量

delphi - 多线程(TThread)Delphi应用程序不会终止

Delphi 应用程序失去焦点

c# - C# 的免费或开源树状网格?

.net - 无法以编程方式展开分配给 TreeView 的 TreeNode

Delphi自定义TTreeNode

regex - Lazarus Pascal 或 Delphi - 转义字符以确保安全/完整性

sql-server - 手持式开发、Lazarus 或 Turbo Delphi.Net