Delphi Vcl到Firemonkey.TopItem解决方案
我对delphi和firemonkey相当陌生。到目前为止,我通过挑选不同的例子来阐述我的理解。我应该如何将这段代码从Vcl转换为Firemonkey?问题是它使用了.TopItem,我一直在搜索firemonkey.TopItem的等效版本或通用解决方案,但没有找到任何内容。非常感谢您的帮助Delphi Vcl到Firemonkey.TopItem解决方案,delphi,firemonkey,vcl,Delphi,Firemonkey,Vcl,我对delphi和firemonkey相当陌生。到目前为止,我通过挑选不同的例子来阐述我的理解。我应该如何将这段代码从Vcl转换为Firemonkey?问题是它使用了.TopItem,我一直在搜索firemonkey.TopItem的等效版本或通用解决方案,但没有找到任何内容。非常感谢您的帮助 procedure Tree2XML(tree: TTreeView); var tn : TTreeNode; XMLDoc : TXMLDocument;
procedure Tree2XML(tree: TTreeView);
var
tn : TTreeNode;
XMLDoc : TXMLDocument;
iNode : IXMLNode;
procedure ProcessTreeItem(tn : TTreeNode; iNode : IXMLNode);
var
cNode : IXMLNode;
begin
if (tn = nil) then Exit;
cNode := iNode.AddChild('item');
cNode.Attributes['text'] := tn.Text;
cNode.Attributes['imageIndex'] := tn.ImageIndex;
cNode.Attributes['stateIndex'] := tn.StateIndex;
//child nodes
tn := tn.getFirstChild;
while tn <> nil do
begin
ProcessTreeItem(tn, cNode);
tn := tn.getNextSibling;
end;
end; (*ProcessTreeItem*)
begin
XMLDoc := TXMLDocument.Create(nil);
XMLDoc.Active := True;
iNode := XMLDoc.AddChild('tree2xml');
iNode.Attributes['app'] := ParamStr(0);
tn := tree.TopItem;
while tn <> nil do
begin
ProcessTreeItem (tn, iNode);
tn := tn.getNextSibling;
end;
XMLDoc.SaveToFile(ChangeFileExt(ParamStr(0),'.XML'));
end; (* Tree2XML *)
过程树2xml(树:TTreeView);
变量
tn:treenode;
XMLDoc:TXMLDocument;
iNode:IXMLNode;
过程ProcessTreeItem(tn:treeNode;iNode:IXMLNode);
变量
cNode:IXMLNode;
开始
如果(tn=nil),则退出;
cNode:=iNode.AddChild('item');
cNode.Attributes['text']:=tn.text;
cNode.Attributes['imageIndex']:=tn.imageIndex;
cNode.Attributes['stateIndex']:=tn.stateIndex;
//子节点
tn:=tn.getFirstChild;
而tn零做
开始
工艺流程(tn、cNode);
tn:=tn.getNextSibling;
结束;
结束;(*ProcessTreeItem*)
开始
XMLDoc:=TXMLDocument.Create(无);
XMLDoc.Active:=True;
iNode:=XMLDoc.AddChild('tree2xml');
iNode.Attributes['app']:=ParamStr(0);
tn:=tree.TopItem;
而tn零做
开始
ProcessTreeItem(tn,iNode);
tn:=tn.getNextSibling;
结束;
SaveToFile(ChangeFileExt(ParamStr(0),'.XML');
结束;(*Tree2XML*)
编辑为更具体一些您是否尝试以某种特定的方式遍历树?是的,我尝试将节点输出到结构化XML文件,以便在程序稍后打开时加载。确实如此,但是您选择的节点有什么特殊之处?为什么你需要TopItem?如果有更好的方法达到同样的效果,我不一定需要。正如我所说,我是个新手。