【问题标题】:How to add nodes to FireMonkey TTreeView at a certain place?如何在某个地方将节点添加到 FireMonkey TTreeView?
【发布时间】:2016-01-12 08:33:02
【问题描述】:

我不熟悉在 Delphi XE7 中使用 FireMonkey 表单和组件。我想在运行时添加一个位于树视图中某个节点之后的节点。例如,如果我有图中的树,我想在TreeViewItem1 中添加一个节点TreeViewItem7 作为子节点;我该怎么做那个运行时?

【问题讨论】:

  • 在我问这个问题之前我已经尝试过了,但实际上它并没有真正以这种方式工作。我在此处收到“访问冲突”错误 Item2.Parent := Item1; ' .
  • 对于该错误,您需要显示更多代码。例如,是否同时创建了 Item1 和 Item2?

标签: delphi treeview firemonkey delphi-xe7


【解决方案1】:

首先,您必须通过myTreeView.ItemByTextItemByIndexItemByGlobalIndex 函数、Selected 属性等找到源项...

然后创建一个新元素并将其添加到源项目。

例如:

var
  NewItem: TTreeViewItem;
  SourceItem: TTreeViewItem;
begin
  SourceItem := tv1.ItemByText('TreeViewItem1');
  if Assigned(SourceItem) then
    begin
      NewItem := TTreeViewItem.Create(tv1);
      NewItem.Text := 'TreeViewItem'+IntToStr(tv1.GlobalCount+1);
      SourceItem.InsertObject(0, NewItem);
    end;
end;

【讨论】:

  • 你是如何让 ItemByText 工作的?我正在尝试这个,但它拒绝找到我的物品并且总是返回零。我已经检查了很多次,文本是正确的。有什么诀窍或我应该先做的事情吗?
  • @GuidoG ItemByText 适用于 XE7,我现在对其进行了测试,适用于 D11。没有技巧,只是简单的代码。可能,您需要提出自己的问题。
  • @GuidoG ,我错了... ItemByText 仅在顶级节点中搜索...
  • 这解释了很多。我已经为此编写了自己的函数,谢谢
猜你喜欢
  • 1970-01-01
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多