GroupRadio与GroupBox的联动 ( 积分: 100 )

  • 主题发起人 主题发起人 jxjdzwlp
  • 开始时间 开始时间
J

jxjdzwlp

Unregistered / Unconfirmed
GUEST, unregistred user!
本人做了RadioGroup与GroupBox的联动,即当RadioGroup中选中一项,GroupBox随着显示不同信息。Table表中含省份和城市名,其中CheckBox数组的caption显示相关省份的城市,CheckBox.checked:=(Table1.FieldByName('省份').AsString:=RadioGroup1.Items[RadioGroup1.ItemIndex]),这条语句无法执行,也不报错,不能显示相关的城市名(CheckBox数组初值设为假)。调试发现表达式Table1.FieldByName('省份').AsString:=RadioGroup1.Items[RadioGroup1.ItemIndex]的值为真,而CheckBox的值不变化?
 
CheckBox.checked:=(Table1.FieldByName('省份').AsString:=RadioGroup1.Items[RadioGroup1.ItemIndex),这条语句无法执行,也不报错

:= ?
= ?
是:=还是=呢,如果不报错,应该是这里误写了吧
光看这个,看不出什么,要看看上下文
 
非常感谢您的指导。很抱歉,第一次发帖,把等号打成了赋值号。我的本意是在数据库中省份为“XX省”的城市所对应的CheckBox的可视属性为真。"XX省"出现在RadioGroup1无线按钮的caption,我用RadioGroup1.Items[RadioGroup1.ItemIndex)来获得某个被点击的RadioGroup选项caption,利用Table1.FieldByName('省份').AsString来获取数据库中省份值,如果两种相等,则对应CheckBox的为真(显示)。结果是单步跟踪时,表达式(Table1.FieldByName('省份').AsString=RadioGroup1.Items[RadioGroup1.ItemIndex]),结果为真,而对应的CheckBox.Visual然为假。
 
procedure TForm1.RadioGroup1Click(Sender: TObject);
var i:integer;
s1:string;
begin
Table1.Open;
Table1.First;
i:=0;
s1:=RadioGroup1.Items[RadioGroup1.ItemIndex];
while not Table1.eof do
begin
if table1.fieldbyname('SubName').AsString<>'' then
[blue] @ [/blue]chk.Caption:=table1.fieldbyname('SubName').AsString ;
if Table1.FieldByName('Name').AsString<>'' then
chk.Visible:=(s1=Table1.FieldByName('Name').AsString);
i:=i+1;
Table1.next;
end;
Table1.Close;
end;
Table1表中有2个字段,nam和SubName,值为A,a1;A,a2;B,b1;B,b2;C,c1共5条记录,第4次执行蓝色处出错?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部