|
여기까지는 3일동안 이것저것 찾아서 했는데요..
제가 구현하려는 것은 데이타를 보여준 다음 그것을 셀마다 사용자가 직접 입력해서
그값을 저장할수 있게하려고 합니다.
TVirualStringTree에서 프로퍼티를 변경해서 값을 변경해도
엔터키를 치면 이전값으로 변경되잖아요..
이것이 OnGetText 이벤트에서 입력된 값이 보여주도록 되어있어서..
입력을 한 후 (Edited event)가 발생하면
입력한 값을 access하여 Data->NodeTitle의 값에 변경시켜 주어야 하는데..
입력한 값에 접근하는 방법을 몰라서 ....
다시한번 도움을 요청합니다.
볼레롱 님이 쓰신 글 :
: 새술을 새 부대에 담는다는 이야기가 있지요.
:
: 우선 이전에 사용하시던 다른 콤포넌트(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 파일중에 보시면, 순서대로 사용법이 나온 것이 있습니다.
: : : 그것 참조하시면 될듯합니다.
: : :
: : : 그럼!
|