님의 소스에서 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;
: }
:
:
:
: 그럼..
|