당연히 해줘야죠
Node를 Remove할때
Node->Data를 delete한후에 Node를 Remove해야..
그럼..
kimnana 님이 쓰신 글 :
: 님의 소스에서 structData* data=new structData;에 대한 delete 는 안해줘도 되는건가요??
: 그리고 상위노드에 여러개의 하위노드를 추가하는 경우(물론 오브젝트구조체를 달아서) 임의의 하위노드에 해당한 OnExpanding이벤트에 대하여 항상 마지막으로 추가한 하위노드의 오브젝트구조체값만 출력되는데 왜 그런거죠?
: 혹시 같은 주소를 지정하해서 생기는 뭐 이런 오류가 아닐가요??
:
:
: 장성호 님이 쓰신 글 :
: : 에러가 아니라 에로?가 나요?
: :
: : ㅋㅋ 농담이구요
: :
: : Node가 NULL이거나 Node->Data가 NULL또는 treeData 타입이 아닌경우에 에러가 나겠죠
: :
: : TreeView에 Node를 Add하는 부분이나 Node->Data설정하는 부분 코드를 보고싶네요
: :
: : 다음은 님 코드를 이용하여 제가 작성한 코드입니다.
: : 참고하세요
: :
: :
: : typedef struct NodeData{int x,y;}structData;
: : typedef structData* treeData;
: :
: : void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node,
: : bool &AllowChange)
: : {
: : if(Node && Node->Data)
: : {
: : int d_x = treeData(Node->Data)->x;
: : ShowMessage(d_x);
: : }
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : TTreeNode *Node=TreeView1->Items->Add(NULL,E_Cap->Text);
: : structData* data=new structData;
: : data->x=StrToIntDef(E_X->Text,1);
: : data->y=StrToIntDef(E_Y->Text,2);
: : Node->Data=data;
: : }
: :
: :
: :
: : 그럼..
|