먼저 아래 질문에 답해주신분들께 감사드립니다.
이번 문제는 TreeView에서 Node추가시 임의로 할당한 메모리를
TreeView를 사용하고 나서 해제시키는 방법에 대한 질문입니다.
아래와 같이 임의의 레코드 구조를 만들고(TTempRec)
TreeView에서 레코드를 생성할때마다 TTempRec을 동적할당하고
Node의 Data에 넣어 주었습니다.
type
PTempRec = ^TTempRec;
TTempRec = record
Str1 : String;
Str2 : String;
Step : Integer;
end;
------ 중간 생략 ---
procedure TForm1.AddNode(PNode: TTreeNode; NodeStr: String)
var
TempRec: PTempRec;
begin
GetMem(TempRec, Sizeof(TTempRec)); <-- 요거 맞나 모르겠네요.
TempRec^.Str1 := '어쩌구 저쩌구';
TempRec^.Str2 := '저쩌구 어쩌구';
TempRec^.Step := PTempRec(PNode.Data)^.Step+1;
TreeView1.Items.AddChildObject(PNode, NodeStr, TempRec);
end;
그냥 머리속으로만 코딩을 해서 맞나 모르겠네요..
틀려두 양해를... ^^;
하여간 중요한건 이런식으로 동적으로 할당한 메모리를
TreeView를 쓰고 난뒤 어케 해제를 시키죠?
기왕이면 한꺼번에 해제할수는 없나요?
|