C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45605] VirtualStringTree->SaveToFile() 과 LoadFromFile()에 대한 질문입니다.
zepirox [zepirox] 1709 읽음    2006-07-10 15:54
VirtualStringTree->SaveToFile()을 호출하면 OnSaveNode 이벤트가 발생하고,
VirTualStringTree->LoadFromFile()을 호출하면 OnLoadNode 이벤트가 발생하더군요.

그래서 다음과 같이 코딩을 해 봤습니다.
아래코드중 mysql_nodedata 는 아래와 같이 정의했습니다.

typedef struct mysql_db_nodedata {
     AnsiString node_name;
     int ImageIndex;
} mysql_nodedata;

여러군데 찾아보다가 델파이 코드 밖에 없어서,
델파이 코드를 C++ Builder로 바꾼건데요..

SaveNode 이벤트
void __fastcall TForm1::VSTSaveNode(TBaseVirtualTree *Sender, PVirtualNode Node,
      TStream *Stream)
{
  PVirtualNode root_Node, temp_node;
  mysql_nodedata *pNodeData, *pSubNodeData;
  pNodeData = (mysql_nodedata*)Form1->VST->GetNodeData(Node);
  Stream->Write( pNodeData,sizeof(pNodeData));

}



SaveNode 이벤트에서 Node 정보를 갖구 오고..
SaveToFile()을 호출하면 저장은 됩니다.
문제는 제대로 저장되는것인지 모르겠네요.
LoadFromFile()로 단순히 불러왔을때 트리의 노드가 표시되고 Caption은 표시가 되지 않습니다.

그래서 LoadNode이벤트에 아래와 같은 코드를 추가해 봤습니다.

//LoadNode 이벤트
void __fastcall TForm1::VSTLoadNode(TBaseVirtualTree *Sender, PVirtualNode Node,
      TStream *Stream)
{
   mysql_nodedata *pNodeData, *pSubNodeData;
   pNodeData = (mysql_nodedata*)Form1->VST->GetNodeData(Node);
   Stream->Read(pNodeData, sizeof(pNodeData));
}

그랬더니, Node로부터 얻은 pNodeData ->node_name이 NULL로 표시되더군요.
저장될때는 node_name이 저장됩니다.

여기까지가 제가 해본 건데요...

뭘 더 해줘야 하나요?

혹시 아시는 분이 있으시면 설명부탁드리구요.

빌더코드로 된 간단한 예제라도 올려주시면 감사하겠습니다.

좋은 하루되세요~~~

+ -

관련 글 리스트
45605 VirtualStringTree->SaveToFile() 과 LoadFromFile()에 대한 질문입니다. zepirox 1709 2006/07/10
45607     Re:VirtualStringTree->SaveToFile() 과 LoadFromFile()에 대한 질문입니다. 장성호 1363 2006/07/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.