两种设计如下:////////////////////////////////////////////////////
设计一:procedure TForm1.BitBtn1Click(Sender: TObject);
beginwith adoquery1 do
begin
close;
sql.Clear;
sql.Text:='select 编号,数量 from atr order by 编号';
open;First;
checkbox1.enabled:=(FieldValues['数量']>0);
next;
checkbox2.enabled:=(FieldValues['数量']>0);
next;
checkbox3.enabled:=(FieldValues['数量']>0);
end;end;//////////////////////////////////////////////////////////
设计二:procedure TForm1.BitBtn1Click(Sender: TObject);
beginwith adoquery1 do
begin
close;
sql.Clear;
sql.Text:='select 编号,数量 from atr order by 编号';
open;First;
checkbox1.checked:=(FieldValues['数量']>0);
next;
checkbox2.checked:=(FieldValues['数量']>0);
next;
checkbox3.checked:=(FieldValues['数量']>0);
end;end;///////////////////////////////////////////////////////
一个是用enabled属性,一个是用checked属性。
都是布尔类型,但方法二总会出现“无法在关闭的数据集上执行该操作”错误提示。是什么原因导致这样的呢?
设计一:procedure TForm1.BitBtn1Click(Sender: TObject);
beginwith adoquery1 do
begin
close;
sql.Clear;
sql.Text:='select 编号,数量 from atr order by 编号';
open;First;
checkbox1.enabled:=(FieldValues['数量']>0);
next;
checkbox2.enabled:=(FieldValues['数量']>0);
next;
checkbox3.enabled:=(FieldValues['数量']>0);
end;end;//////////////////////////////////////////////////////////
设计二:procedure TForm1.BitBtn1Click(Sender: TObject);
beginwith adoquery1 do
begin
close;
sql.Clear;
sql.Text:='select 编号,数量 from atr order by 编号';
open;First;
checkbox1.checked:=(FieldValues['数量']>0);
next;
checkbox2.checked:=(FieldValues['数量']>0);
next;
checkbox3.checked:=(FieldValues['数量']>0);
end;end;///////////////////////////////////////////////////////
一个是用enabled属性,一个是用checked属性。
都是布尔类型,但方法二总会出现“无法在关闭的数据集上执行该操作”错误提示。是什么原因导致这样的呢?
解决方案 »
- U盘与DELPHI的技术问题
- 如何将这些函数减缩成一个函数?(高手请救)
- 求救:把EXCEL中的记录,一条条导入到已经存在表的SQL SERVER2000中,
- ComboBox组件自动弹出问题
- 请问“被呼叫方拒绝接受呼叫”是怎回事?
- 土问:这个窗口是怎么建立的?
- 怎么获得一个Connection中某个表里的字段还有字段类型,长度等(在线待)
- 关于delphi的ide的一个小bug?
- 2000下ntfs格式的分区
- 如何将一个全局数组重新赋值?
- 编译时选不选 Project option-package中的"Build with runtime package"区别?
- RichEdit输入SQL语句问题
checkbox1.checked:=(FieldValues['数量']>0);
next;
checkbox2.checked:=(FieldValues['数量']>0);
next;
checkbox3.checked:=(FieldValues['数量']>0);
end;
这些代码应该写到外面,而不是with的里面,再试吧
也就是
procedure TForm1.BitBtn1Click(Sender: TObject);
beginwith adoquery1 do
begin
close;
sql.Clear;
sql.Text:='select 编号,数量 from atr order by 编号';
open;
end;
First;
checkbox1.checked:=(FieldValues['数量']>0);
next;
checkbox2.checked:=(FieldValues['数量']>0);
next;
checkbox3.checked:=(FieldValues['数量']>0);
end;
checkbox1.checked:=msign;
next;
...
checkbox2.enabled:=(FieldValues['数量']>0);
checkbox2.checked:=checkbox2.enabled;
哈~!
是的,当click checkbox时我是对数据库操作的。
你的话一击即中,谢谢!!