双击DBGRID在checklistbox中显示记录状态

chdaner 2009-09-07 10:17:29
checklistbox1 中各项值均为Pass
checklistbox2 中各项值均为Fail

两个checklistbox与一个listbox对应,添加记录已经没有问题,现在我想通过双击dbgrid中的记录,checklistbox中对应的值便打勾,代码如下:
with dbgrid1 do begin
for i:=0 to listbox1.Items.Count-1 do begin
if checklistbox1.Items.Strings[i]=fields[i].AsString then
checklistbox1.Checked[i]:=true
else if checklistbox2.Items.Strings[i]=Fields[i].AsString then
checklistbox2.Checked[i]:=true
else
checklistbox1.Checked[i]:=false;
checklistbox2.Checked[i]:=false;
end;

代码有什么问题?为什么双击记录没反应呢?
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2009-09-07
  • 打赏
  • 举报
回复
with dbgrid1 do 
begin
for i:=0 to listbox1.Items.Count-1 do
begin
checklistbox1.Checked[i] := checklistbox1.Items.Strings[i]=fields[i].AsString;
checklistbox2.Checked[i] := checklistbox2.Items.Strings[i]=Fields[i].AsString;
end;
end;
chdaner 2009-09-07
  • 打赏
  • 举报
回复
编译的时候有如下提示:
FOR-LOOP variable 'i' may be undefined after loop
是什么意思?
程序可以运行,但是双击记录时,checklistbox里面还是没打勾
dinoalex 2009-09-07
  • 打赏
  • 举报
回复
注意一下i值
chdaner 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 smallhand 的回复:]
Delphi(Pascal) codewith dbgrid1dobeginfor i:=0to listbox1.Items.Count-1dobegin
checklistbox1.Checked[i] := checklistbox1.Items.Strings[i]=fields[i].AsString;
checklistbox2.Checked[i] := checkl¡­
[/Quote]

试过了,怎么不行?还是没打勾

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧