复选框添加项目

问题描述 投票:0回答:2

enter image description here

任何人都知道会出什么问题吗?我想将项目添加到复选框,但是什么也没有发生...项目是表集合中的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;

结束;

谢谢!

delphi delphi-xe
2个回答
2
投票

DisplayName是局部变量,否则不使用。您应该设置新项目的Text属性。

我建议您停止使用with。如果您没有这样做,那么您可能会编写如下代码:

Item := cxCheckListBox1.Items.Add;
Item.DisplayName := ...;

编译器可能拒绝了该代码。实际上,使用with只会使您的示波器混乱。请停止使用。


0
投票

如果需要在列表中不仅存储字符串,还需要存储其他数据(例如,一些标识符),则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]);
© www.soinside.com 2019 - 2024. All rights reserved.