|
ㅜㅜ 이상하게 이질문에 대해선 명쾌한 답변이 없군요...그래서 이번엔 소스를 아예 올립니다 ^^;
같은 트리내에서 하위노드가 있는 것을 다른 노드밑으로 이동시킬때(여기선 걍 delete는 신경
쓰지 않았습니다.) 계속 while 에서 에러가 나네요....
객체를 넣은상태가 name이라는 것이 객체 안에 있는 변수거든요..
feature가 n이면 하위노드들이 존재하는 경우입니다.
DropTarget에 옮길 노드의 상위노드를 생성하고..(node3)
그 밑에 옮길노드의 하위노드들을 while문안에서 node3 밑으로 가져다가 붙이는 루틴입니다.
void __fastcall TSunRo_Form::TreeView1DragDrop(TObject *Sender,
TObject *Source, int X, int Y)
{
if (dynamic_cast<TTreeView *>(Source) !=0) {
TTreeNode *node3 = TreeView1->DropTarget;
node3 = TreeView1->Items->AddChildObject(
TreeView1->DropTarget,PAddrDP(TreeView1->Selected->Data)->name,
TreeView1->Selected->Data);
//여기까진 혼자 있을때...옮기는거....이건 잘되구요...
//여기서 부터가 하위노드가 있을 경우의 처리
if (PAddrDP(TreeView1->Selected->Data)->feature =="N"){
//여기서 부터 안되는군요...자꾸 메모리참조에러같은게 나는데..
//도저히 못잡아 내겠습니다.
while(TTreeNode *node = TreeView1->Selected->GetNextChild(node)){
TTreeNode *node1 =
TreeView1->Items->AddChildObject(node3,
PAddrDP(node->Data)->name,node->Data);
}
}
}
}
고수님들의 조언부탁드립니다........
그럼 즐푸~~
|