help!!!! ..怎么没人回答....再问一下,treeview 显示乱码,不胜感激.....
help!!!! ...........treeview 显示乱码,不胜感激.....
求救,各位大侠,请问一关于treeview的问题.不胜感激.
void __fastcall TForm1::BuildingTree(TTreeNode * node, AnsiString Table, int code)
{
//TODO: Add your source code here
TTreeNode *tNode,*mNode;
TTreeNode *SubNode,*SubNode2;
AnsiString sql,str;
AnsiString name,id;
AnsiString name2,id2;
if (node == NULL)
{
sql = "select * from office";
RunQuery(ADOQuery1,sql);
while (!ADOQuery1->Eof)
{
id = ADOQuery1->FieldByName("ID")->Value;
name = ADOQuery1->FieldByName("Name")->Value;
node = TreeView2->Items->Add(NULL,name); //第一层节点
node->Data = id.c_str();
// Node_Data *nd= new Node_Data; nd->data = id;
sql = "select * from Unit where OfficeID='"+id+"'";
ShowMessage(id);//此里的id显示正常.
RunQuery(ADOQuery2,sql);
while (!ADOQuery2->Eof)
{
id2 = ADOQuery2->FieldByName("ID")->Value;
name2 = ADOQuery2->FieldByName("Name")->Value;
SubNode = TreeView2->Items->AddChild(node,name2); //第二层节点
SubNode->Data = id2.c_str(); //问题会不会出现在这样的类型转换里.????
ShowMessage(id2);//此里的id2显示正常.
ADOQuery2->Next();
}
ADOQuery1->Next();
}
}
}
void __fastcall TForm1::TreeView2Click(TObject *Sender)
{
AnsiString s=AnsiString((char*)TreeView2->Selected->Data);
//问题会不会出现在这样的类型转换里.????
ShowMessage(s);
}
运行后整棵树的遍历是正确的.
我想问一下,为何我这里(treeview单击)弹出来的s也即是id,id2,怎么有些是乱码.
我已经在程序中保存了id,id2(每次的值不同的)的值到SubNode->Data (节点的数据中),
请问这是为什么.不胜感激
在线等待.............