任何人都知道会出什么问题吗?我想将项目添加到复选框,但是什么也没有发生...项目是表集合中的CollectionItems。表具有名称属性
procedure TForm1.FormShow(Sender: TObject);
var
DisplayName: string;
c :integer;
begin
for C := 0 to Compname.Tables.Count - 1 do
with cxCheckListBox1.Items.Add do
begin
DisplayName := Compname.Tables.Items[C].TableName;
Tag := C;
end;
结束;
谢谢!
DisplayName
是局部变量,否则不使用。您应该设置新项目的Text
属性。
我建议您停止使用with
。如果您没有这样做,那么您可能会编写如下代码:
Item := cxCheckListBox1.Items.Add;
Item.DisplayName := ...;
编译器可能拒绝了该代码。实际上,使用with
只会使您的示波器混乱。请停止使用。
如果需要在列表中不仅存储字符串,还需要存储其他数据(例如,一些标识符),则Items.Add()
方法不适用。在这种情况下,有用的是Items.AddObject()
方法。
例如,添加新项目:
lbFeatures.AddItem(
qrFeatures.FieldByName('DESCR').AsString,
TObject(qrFeatures.FieldByName('ID').AsInteger));
并读取存储的ID:
if lbFeatures.Checked[I] then
id := Integer(lbFeatures.Items.Objects[I]);