Firemonkey TTreeView - 在TTreeViewItems,TValue中存储对象引用

时间:2015-03-18 12:29:49

标签: delphi treeview firemonkey

尝试的方式与旧的VCL TTreeNode.一样好,没有TTreeNode并且没有方法可以将树木码添加到树中,而是我必须手动创建{{1实例并将其父属性设置为TTreeViewItem实例。现在,TTreeView有一个数据属性,但其类型为TTreeViewItem

如何处理这种类型?

我尝试了以下内容:

TValue

1 个答案:

答案 0 :(得分:3)

TFmxObject.SetData方法是空的虚拟存根,必须在后代类中重写。您无法以TreeViewItem.Data的方式使用它,因为Data实际上包含TTreeViewItem.Name属性。

您必须创建自己的后代TTreeViewItem类并使用它而不是默认的

  TMyTreeViewItem = class(TTreeViewItem)
  protected
    fData: TValue;
    function GetData: TValue; override;
    procedure SetData(const Value: TValue); override;
  end;

function TMyTreeViewItem.GetData: TValue;
begin
  Result := fData;
end;

procedure TMyTreeViewItem.SetData(const Value: TValue);
begin
  fData := Value;
end;