复件 unit1.cpp
来自「bcb中通过递归方式将xml导入到树形列表(Treeview)中」· C++ 代码 · 共 75 行
CPP
75 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//赋值:
void __fastcall TForm1::XMLtoTree(String fName,TTreeView *Tree)
{
typedef struct MyRec
{
String FName,LName;
}TMyRec;
typedef TMyRec* PMyRec;
TTreeNode *Node;
PMyRec MyRecPtr;
int TreeViewIndex;
_di_IXMLDocument xml;
xml = LoadXMLDocument(fName);
_di_IXMLNode node = xml->DocumentElement;
_di_IXMLNodeList nodes=node->ChildNodes;
if(node->HasChildNodes)
{
for(int i=0;i<nodes->Count;i++)
{
Node = Tree->Items->Add(NULL,nodes->Nodes[i]->GetNodeName());
for(int j=0;j<(nodes->Nodes[i]->ChildNodes->Count)-1;j+=2)
{
MyRecPtr=new TMyRec;
MyRecPtr->FName=nodes->Nodes[i]->ChildNodes->Nodes[j]->GetNodeName();
//MyRecPtr->LName=nodes->Nodes[i]->ChildNodes->Nodes[j+1]->GetText().w_str();
MyRecPtr->LName = nodes->Nodes[i]->ChildNodes->Nodes[j+1]->GetNodeName().c_bstr();
Tree->Items->AddChildObject(Node,MyRecPtr->FName,MyRecPtr);
//node = nodes->FindNode(MyRecPtr->FName);
Tree->Items->AddChildObject(Node,MyRecPtr->LName,MyRecPtr);
}
} node = nodes->FindNode(MyRecPtr->FName);
//XMLtoTree("record.xml",TreeView1);
}
}
//取值的:
String __fastcall TForm1::GetTreeValue(TTreeView *Tree)
{
typedef struct MyRec
{
String FName,LName;
}TMyRec;
typedef TMyRec* PMyRec;
PMyRec MyRecPtr;
return PMyRec(Tree->Selected->Data)->LName;
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
XMLtoTree("record.xml",TreeView1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TreeView1DblClick(TObject *Sender)
{
ShowMessage(GetTreeValue(TreeView1));
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?