还是这个循环语句(10分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!


我想用循环实现这个功能:
窗体里有8个checkbox用循环判断checkbox是否被选中,选中就为1,不选中就为0,
最后生成一个8位的二进制的数存入数据库。我是这样写的:

procedure TForm1.FlatButton1Click(Sender: TObject);
var
i:integer;
a:string;
begin
for i:=1 to componentcount-1 do
begin
if components is TFlatCheckBox
then
if TFlatCheckBox(components).Checked
then
a:='1'
else
a:='0';
end;
edit1.Text:=a;
end;

可是又不对,好象是a的问题,如果用数组edit1.text:=a又类型不匹配 ,我该怎么做呢?
 
// 如果你真想要八位二进制数的话
procedure TForm1.FlatButton1Click(Sender: TObject);
var
i:integer;
a:Byte;
begin
for i:=0 to componentcount-1 do
if components is TFlatCheckBox then
a:=(a shl 1) + Ord(TFlatCheckBox(components).Checked);
edit1.Text:=IntToHex(a,2);
end;

// 如果你只是想要一个八位二进制数的字符串表示
procedure TForm1.FlatButton1Click(Sender: TObject);
var
i,j:integer;
a:string;
begin
for i:=0 to componentcount-1 do
if components is TFlatCheckBox then
a:=a+Char(Ord(TFlatCheckBox(components).Checked)+$30);
edit1.Text:=IntToHex(a,2);
end;
 

Similar threads

S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
S
回复
0
查看
894
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
922
SUNSTONE的Delphi笔记
S
后退
顶部