|
하안인 님이 쓰신 글 :
: TVirtualStringTree에서 컬럼이 한개가 아니라 여러개로 구성해서
: 두번째 컬럼은 에디트로 세번째는 콤보로 네번째는 날자 컴포넌트 등을 연결해서 사용하려고 합니다.
:
: 그런데 기본적으로 TVirutalStringTree에서 컬럼을 클릭하면 해당되는 컬럼이 활성화되는 것이
: 아니고 처음 즉 컬럼0이 선택되어 집니다
:
: 컬럼중에 선택되는 것이 한개일때는
: void __fastcall TForm1::TreeChange(TBaseVirtualTree *Sender,
: PVirtualNode Node)
: {
: if (!Node) return; // only for safety the program !
: TPropertyData* Data = (TPropertyData*)Tree->GetNodeData(Node);
: if (Data && (Data->PropertyTyp != ptNone)) Sender->EditNode(Node, 2);
:
: }
: Change나 Click 이벤트에서 위와 같이 직접대입하면 되겠지만 여러개일때는 어떻게 해야 하나요.
: 컬럼을 클릭했을때는 OnEditing Event가 발생하지 않더라구요...
: 컬럼이 0인곳을 클릭했을때는 발생해서 처리하면 되는데....
: 그리고 위와 같이 하면 2번째 컬럼인곳에 에디트할수는 있지만 값을 변경하고 나서
: 다른곳을 클릭하면 이전값으로 바뀌더라구요.
:
:
: 저는 컬럼을 여러개 만들어서 사용하여야 하는데...
: 도움을 구합니다. 몇일동안 VirtualStringTree에 대해서 공부하는데 쉽지가 않네요.
VirtualStringTree (이하 VST) 를 설치하시면, 설치한 디렉토리에 샘플들이 있습니다.
샘플이 파스칼이기는 하지만, 어떤 함수를 쓰는지, 어떤 메쏘드를 만들어야 하는지, 정도는 참조가 가능할 겁니다.
여기서 Advanced 란 예제를 실행해서 비슷한 것은 예제를 보시면 될듯하구요.
VST는 각 노드별로 선택하는 모드와, 한 라인 전체가 선택되는 모드가 있을 겁니다.
각 노드별로 편집을 하실려면, 먼저 옵션에서 노드만 선택가능하게 바꾸셔야 할듯합니다.
컬럼0 에서 컬럼1을 에디트 하지는 않겠지요 ^^
그럼!
|