清单框添加项目

Checklistbox adding items

有人知道会出现什么问题吗?我想将项目添加到检查列表框但没有任何反应...项目是 Table 集合中的 CollectionItems。 Tables 有一个名字 属性

  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]);