type
pxnode=^rdIXMLNode;
rdIXMLNode=record
rd1:IXMLNode;
end;
procedure TForm1.acttreeExecute(Sender: TObject);
procedure add(Xnode:IXMLNode ; Tnode: TTreeNode) ;
Var
i :integer ;
V :TTreeNode ;
ptnd:pxnode;
begin
if Xnode.NodeType = ntElement then
begin
if Xnode.NodeName='FIELD'then
begin
new(ptnd);
V:=TreeView1.Items.AddChild(Tnode,(Xnode.Attributes['attrname']+' '+Xnode.Attributes['fieldtype']));
ptnd^.rd1:=Xnode;V.Data:=ptnd;
end;
for i := 0 to Xnode.ChildNodes.Count-1 do
begin
add(Xnode.ChildNodes[i],V);
end
end;
end;
var j : integer ;
begin
for j:= 0 to XML1.DocumentElement.ChildNodes.Count-1 do
begin
add(XML1.DocumentElement.ChildNodes[j], nil);
end;
end;
procedure TForm1.treeview1Change(Sender: TObject; Node: TTreeNode);
var s:string;
begin
s:=pxnode(node.Data)^.rd1.NodeName;
showmessage(s);
end;