|
Load/ Save 어떻게 하나요....아래는 제가 작성한 코드입니다.. 트리만 저장되고 노드데이터는 잘안되네요..제가 먼가 잘못하고 있는듯 한데..쩝..도와주세요
Virtual Treeview에서..
// Unit1.h 노드 선언
typedef struct tagPhonebook {
AnsiString Name;
AnsiString Tel;
AnsiString Sex;
// int ImageIndex; // 출력할 이미지의 index
} structPhonebook, *ptrstructPhonebook;
private :
AnsiString fName;
// 이하 생략
//-------------------------------------------------------------------------------------
void __fastcall TForm1::VirtualStringTree1LoadNode(TBaseVirtualTree *Sender, // Load
PVirtualNode Node, TStream *Stream)
{
int Size;
if (!Node)
return;
structPhonebook *pPhonebook = (structPhonebook *)Sender->GetNodeData(Node);
Stream->Read(Node, sizeof(Node));
Stream->Read(pPhonebook->Name.c_str(), sizeof(pPhonebook->Name+1));
Stream->Read(pPhonebook->Tel.c_str(), sizeof(pPhonebook->Tel.Length() +1));
Stream->Read(pPhonebook->Sex.c_str(), sizeof(pPhonebook->Sex.Length()+1));
}
void __fastcall TForm1::VirtualStringTree1SaveNode(TBaseVirtualTree *Sender, // Save
PVirtualNode Node, TStream *Stream)
{
if (!Node)
return;
structPhonebook *pPhonebook =(structPhonebook *)Sender->GetNodeData(Node);
Stream->Write(Node, sizeof(Node));
Stream->Write(pPhonebook->Name.c_str(), sizeof(pPhonebook->Name+1));
Stream->Write(pPhonebook->Tel.c_str(), sizeof(pPhonebook->Tel.Length() +1));
Stream->Write(pPhonebook->Sex.c_str(), sizeof(pPhonebook->Sex.Length()+1));
}
void __fastcall TForm1::SaveClick(TObject *Sender)
{
fName="tt.txt";
VirtualStringTree1->SaveToFile(fName) ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::LoadClick(TObject *Sender)
{
fName="tt.txt";
VirtualStringTree1->LoadFromFile(fName);
}
|