FORM里有25个CHECKBOX,一个BUTTON,现要进行判断这15个CHECKBOX中是否为选中状态,是则向数据库中插入CHECKBOX.caption,请高手们指导下,谢谢!
以下是我的代码,编译没出错,运行出错了,麻烦帮我看看哪错了,谢谢!
procedure Tuserrights.BitBtn1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to 25 do
begin
if (TCheckbox(user.FindComponent('Checkbox'+inttostr(i))).Checked) then
begin
Adoquery1.SQL.Text:='insert into user_czrights(user_id,user_name,user_cz_rights) values (:id,:name,:czrights)';
Adoquery1.Parameters.ParamByName('id').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('name').Value:=Edit2.Text;
Adoquery1.Parameters.ParamByName('czrights').Value:=Tcheckbox(user.FindComponent('checkbox'+inttostr(i))).Caption;
Adoquery1.ExecSQL;
messagebox(handle,'用户权限设置成功!','系统提示',mb_ok);
end;
end;
end;
以下是我的代码,编译没出错,运行出错了,麻烦帮我看看哪错了,谢谢!
procedure Tuserrights.BitBtn1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to 25 do
begin
if (TCheckbox(user.FindComponent('Checkbox'+inttostr(i))).Checked) then
begin
Adoquery1.SQL.Text:='insert into user_czrights(user_id,user_name,user_cz_rights) values (:id,:name,:czrights)';
Adoquery1.Parameters.ParamByName('id').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('name').Value:=Edit2.Text;
Adoquery1.Parameters.ParamByName('czrights').Value:=Tcheckbox(user.FindComponent('checkbox'+inttostr(i))).Caption;
Adoquery1.ExecSQL;
messagebox(handle,'用户权限设置成功!','系统提示',mb_ok);
end;
end;
end;
stopped Use Step or Run to continue.
这是错误提示,
确认 checkbox1 到checkbox25 之间的 checkbox都存在 你可以单步跟踪下 出错的是那条语句!
TCheckbox(user.FindComponent('Checkbox'+inttostr(i))).Checked 这条语句是做判断该CHECKBOX是否为选中状态,应该是这样没错吧?
procedure Tuserrights.BitBtn1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to userrights.ControlCount-1 do
begin
if (userrights.Controls[i] is TCheckbox) and (userrights.Controls[i] as TCheckbox).checked then
begin
Adoquery1.SQL.Text:='insert into user_czrights(user_id,user_name,user_cz_rights) values (:id,:name,:czrights)';
Adoquery1.Parameters.ParamByName('id').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('name').Value:=Edit2.Text;
Adoquery1.Parameters.ParamByName('czrights').Value:=(userrights.Controls[i] as TCheckbox).Caption;
Adoquery1.ExecSQL;
messagebox(handle,'用户权限设置成功!','系统提示',mb_ok);
end;
end;
end;