3
我有这种类型的定义:如何在这种情况下释放内存?
KMenuClass = class
private
pMenuID: String;
public
property MenuID: String read pMenuID;
constructor Create(const paraMenuID: String);
end;
那么我这样做:
constructor KMenuClass.Create(const paraMenuID: String);
begin
pMenuID:= paraMenuID;
end;
procedure TfrmPermissions.FormCreate(Sender: TObject);
begin
clSetup.Items.AddObject('ant', KMenuClass.Create('a007'));
clSetup.Items.AddObject('cat', KMenuClass.Create('x123'));
end;
上述两个项目(AER)仅测试项。我真的在看约50件物品。 clSetup是TCheckListBox类型,我基本上存储第二个字符串以及项目字符串。
我可以输出一个特定的项目是这样的:
Var
ThisItem : KMenuClass;
.
.
.
ThisItem := clSetup.Items.Objects[clSetup.ItemIndex] as KMenuClass;
ShowMessage(clSetup.Items[clSetup.ItemIndex] + ' : ' + ThisItem.MenuID);
但我怎么处理与各列表项关联我的对象?当我关闭表单时是否自动处理?
谢谢!
谢谢你的回答。我明白你的观点,但好奇的是,如果我希望在表格关闭时自动处理它,这是错误的吗? – itsols
我应该使用'ThisIem.Free'还是'ThisItem.FreeInstance'? – itsols
是的,我的猜测是他们不会靠近。系统不知道他们是否拥有或引用。和.free –