|
새술을 새 부대에 담는다는 이야기가 있지요.
우선 이전에 사용하시던 다른 콤포넌트(TListView 등)의 사용법은 잊어버리구요.
TVitrualStringTree 는 메모리 관리를 이 넘이 직접 하는 방식입니다.
그래서,
1. 사용할 데이타의 구조 선언 ( 여기서 데이타는 각 셀(또는 노드)에 들어가 데이타 입니다.)
typedef struct {
TVirtualNode *Node; // Node Address.
AnsiString NodeTitle; // Label for the node.
} TestRec, *ptrTestRec;
2. TVitrualStringTree 에 사용할 데이타의 크기를 알려 줍니다.
OnGetNodeDataSize 이벤트에 메소스 추가
void __fastcall TFormMain::vstExplorerGetNodeDataSize(
TBaseVirtualTree *Sender, int &NodeDataSize)
{
NodeDataSize = sizeof(TestRec);
}
3. ->AddChild 등의 메소드를 이용하면, TVitrualStringTree 것이 2번에서 알려주 크기만큼
메모리 할당을 해서 알려 줍니다.
4. AddChild 가 알려준 할당된 메모리에 원하는 데이타의 값은 넣습니다.
TVirtualNode* Node = Tree->AddChild(NULL);
TestRec* Data = (TestRec*)Tree->GetNodeData(Node);
Data->NodeTitle = " 값 넣어줌";
5. 각 원하는 메소드에서 데이타를 사용합니다.
TestRec* Data = (TestRec*)Tree->GetNodeData(Node);
Data->NodeTitle <== 이런식으로 알아서 사용.
이것이 기본 사용법 입니다.
메모리 할당은 TVitrualStringTree 가 했기 때문에, 해제도 알아서 해줍니다.
하안인 님이 쓰신 글 :
: help파일도 보면서 지금 3일재 이것 저것 해보고 있는데요..
:
: VirtualStringView에 데이타를 직접 입력한 경우에
: 그값을 얻는 방법을 좀 알려주시면 감사하겠습니다.
:
: 어떤것으로 접근해야 하는지... 제가 보기엔 node쪽 원형만 있어서...
:
:
:
: 볼레롱 님이 쓰신 글 :
: : 하안인 님이 쓰신 글 :
: : : VirtualStringView컴포넌트를 설치해서 테스트 하고 있는데요..
: : :
: : : TListView에는 Item이 있어서 열로 데이타를 입력하는데 사용하는데...
: : :
: : : Node쪽은 있는데 Item에 해당되는 것을 못찾아서 ...
: : :
: : : TVirualStringTree에서는 어떻게 구현해야 되는지요...
: : :
: : : 홈페이지에 가서 샘플이 빌더용이 있어서 하나 받았서 보았는데...
: : : 여기서도 노드에 대한 것만 있어서...
: :
: : 이거 설치하시면, 설치 디렉토리에 Doc 아래에 help 파일이 있습니다.
: :
: : 이거 먼저 보시는 것이 순서 일듯하네요.
: :
: : TListView 와 TVirtualStringTree와 만든 사람이 다른데,
: : 동일한 것(Item)이 있어야 된다는 규칙은 없지요.
: :
: : help 파일중에 보시면, 순서대로 사용법이 나온 것이 있습니다.
: : 그것 참조하시면 될듯합니다.
: :
: : 그럼!
|