안녕하세요.
tlist를 사용하다가 objectlist 가 메모리관리에 편리하다고 해서 사용하는데
에러가 나서 이렇게 질문 드립니다.
type
TTest = ^TTreeInfo;
TTreeInfo = record
Name : string;
point: string;
end;
~~~
~~~
private
objlist TObjectList;
testrec : TTest;
~~~~
~~~~
procedure TForm1.FormCreate(Sender: TObject);
begin
objlist := TObjectList.Create(true);
end;
procedure TForm1.Button1Click(Sender: TObject); //insert
var i :integer;
begin
New(testrec );
testrec ^.Name := edit1.text;
testrec ^.Point := edit2.text;
objlist .Add(Pointer(Test_a));
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
objlist .OwnsObjects := true;
//질문1:true로 설정하면(디폴트가 true) delete,clear 등을 하면 자동으로 메모리에서 해제한다고 help에 나와 있는데
objlist .Delete(0); // ---> 여기서 에러가 나더군요
//objlist .OwnsObjects := false; 로 두면 에러는 나지 않고요.
//질문2 : 만일에 false를 선택해서 마지막에 objlist .Free; 만하면 자동적으로 그 리스트까지도 다 메모리에서 해제가 되는지 궁금합니댜
end;
포인터는 안될듯 하며,
TObject 계열의 객체만 지원되는거 같습니다. ㅅㄱ