我在在线文档或 Delphi XE2 附带的演示中找不到任何示例,用于FMX.TreeView.TTreeView
在运行时将节点添加到控件。那么,如何在运行时添加、删除和遍历 FireMonkey TreeView 的节点?
问问题
11544 次
3 回答
15
我想我们都在这一点上学习...
但是从我所看到的 TTreeView 使用的原则是任何控件都可以成为另一个控件的父级。
您需要做的就是设置Parent
属性以使项目显示为子项。
var
Item1 : TTreeViewItem;
Item2 : TTreeViewItem;
begin
Item1 := TTreeViewItem.Create(Self);
Item1.Text := 'My First Node';
Item1.Parent := TreeView1;
Item2 := TTreeViewItem.Create(Self);
Item2.Text := 'My Child Node';
Item2.Parent := Item1;
end;
因此,您可以做以前不可能的事情,例如在 TreeView 中放置任何控件。例如,此代码将向 Item2 使用的区域添加一个按钮,并且在 Item2 可见之前,该按钮将不可见。
Button := TButton.Create(self);
Button.Text := 'A Button';
Button.Position.X := 100;
Button.Parent := Item2;
于 2011-09-21T23:45:20.263 回答
2
使用 AddObject(FmxObject) 您也可以添加任何对象(按钮等)...
于 2019-01-22T06:55:39.080 回答
0
我有另一个想法。第一个答案帮助我得到它。所以添加以下代码
Var
TempItem:TTreeViewItem;
Begin
TempItem := TTreeViewItem.Create(Self);
TempItem.Text := 'Enter Caption Here';
TempItem.Parent := TreeView;
End
现在,当您必须释放项目以使其不使用不必要的内存时,真正的技巧就来了。因此,假设您在循环中使用它,就像我在这里所做的那样:
ADOTable.Connection := ADOConnection;
ADOTable.TableName := 'MenuTree';
ADOTable.Open;
ADOTable.First;
ADOTable.Filter := '(CHFlag=''CURRENT'') AND (Parent=''Tree'')';
ADOTable.Filtered := True;
While NOT ADOTable.Eof Do
Begin
TempItem := TTreeViewItem.Create(Self);
TempItem.Text := ADOTable['ItemName'];
TempItem.Parent := TreeView;
// TempItem.Free;
ADOTable.Next;
End;
TempItem.Free;
ADOTable.Close;
于 2012-06-06T22:35:01.030 回答