我有这种类型的定义:
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;
以上两个条目仅限测试条目。我真的在看大约50件物品。 clSetup 的类型为TCheckListBox,我基本上存储了第二个字符串以及 Items 字符串。
我可以输出这样的特定项目:
Var
ThisItem : KMenuClass;
.
.
.
ThisItem := clSetup.Items.Objects[clSetup.ItemIndex] as KMenuClass;
ShowMessage(clSetup.Items[clSetup.ItemIndex] + ' : ' + ThisItem.MenuID);
但是如何处理与每个列表项关联的对象?关闭表单时会自动处理吗?
谢谢!
答案 0 :(得分:1)
手动迭代items.objects,items.count次并释放每个对象可能是唯一的方法,因为该属性可能是tstrings,并且没有ownsobjects属性(只有在tstringlist中)。