1

在我的软件中,我使用了一种标准TCheckListBox,使其在应用程序代码中具有数据感知能力。

这是工作。当我想保存时,我使用以下代码:

for i := 0 to clbGrp.Items.Count-1 do
begin
  if clbGrp.Checked[i] then grp:=grp+'1' else grp:=grp+'0';
end;

(i : smallint;grp: string)

当我想显示表格时,我使用这个:

var i:smallint;
begin
  for i := 0 to clbGrp.Items.Count-1 do clbGrp.Checked[i]:=False;
     for i := 0 to clbGrp.Items.Count-1 do
      begin
        clbGrp.Checked[i]:=StrToBool(Dm.TblFytFytGrup.AsString[i+1]);
      end;

这是问题所在。

我需要这个任务很常见,我不想每次都用代码来做,像那样扫描数据行。

所以我想创建这个组件的数据感知版本。

我怎样才能做到这一点?

我知道存在一些商业组件,但我想学会自己做。

4

2 回答 2

4

你可以使用这个组件http://www.delphipages.com/records.cfm?kw=tdbchecklistbox或者开始创建你自己的组件 - 这里有一个很好的教程关于如何做到这一点http://www.delphidabbler.com/提示/194

于 2013-09-25T14:02:35.660 回答
1

我知道存在一些商业组件,但我想学会自己做。

然后看看是否有可用的数据感知选项卡控件?它处理多记录数据集。

于 2013-09-27T16:17:07.833 回答