共有六个CheckBox,分别对应六个变量表达式:
□CheckBox1,对应计数变量i1和赋值变量Var_a:=表达式1;
□CheckBox2,对应计数变量i2和赋值变量Var_a:=表达式2;
□CheckBox3,对应计数变量i3和赋值变量Var_a:=表达式3;
□CheckBox4,对应计数变量i4和赋值变量Var_a:=表达式4;
□CheckBox5,对应计数变量i5和赋值变量Var_a:=表达式5;
□CheckBox6,对应计数变量i6和赋值变量Var_a:=表达式6;
当CheckBox被选中时,变量i1,i2,i3,i4,i5,i6均为1,否则为0;如果全部的CheckBox均被选中,则可这样写代码对Var_a赋值:
For j:=1 to 6 do
begin
case j of
1: Var_a:=表达式1;
2: Var_a:=表达式2;
3: Var_a:=表达式3;
4: Var_a:=表达式4;
5: Var_a:=表达式5;
6: Var_a:=表达式6;
end;
其它语句...
end;
但是当某几个CheckBox被选中时(选中总数量用i_sum表示,i_sum=i1+i2+i3+i4+i5+i6)
需根据具体选中的某几个CheckBox执行For循环.
For j:=1 to i_sum do
begin
Var_a:=表达式?;(即j=1时,执行第一个被选中CheckBox所对应的表达式,j=2时,执行第二个被选中CheckBox所对应的表达式,以此类推,直到j=i_sum)
其它语句...
end;
举例说,我选中了i2,i3,i5三个CheckBox,则变量i2,i3,i5均为1,变量i1,i4,i6为0;总选中数量为i_sum=3;For循环为:
For j:=1 to 3 do
begin
Var_a:=表达式?;(即j=1时,执行Var_a:=表达式2;j=2时执行Var_a:=表达式3;j=3时执行Var_a:=表达式5)
其它语句...
end;
求助各位大侠:如何编写For循环内的代码,以判断是哪几个CheckBox被选中,并执行对应的变量赋值语句?
□CheckBox1,对应计数变量i1和赋值变量Var_a:=表达式1;
□CheckBox2,对应计数变量i2和赋值变量Var_a:=表达式2;
□CheckBox3,对应计数变量i3和赋值变量Var_a:=表达式3;
□CheckBox4,对应计数变量i4和赋值变量Var_a:=表达式4;
□CheckBox5,对应计数变量i5和赋值变量Var_a:=表达式5;
□CheckBox6,对应计数变量i6和赋值变量Var_a:=表达式6;
当CheckBox被选中时,变量i1,i2,i3,i4,i5,i6均为1,否则为0;如果全部的CheckBox均被选中,则可这样写代码对Var_a赋值:
For j:=1 to 6 do
begin
case j of
1: Var_a:=表达式1;
2: Var_a:=表达式2;
3: Var_a:=表达式3;
4: Var_a:=表达式4;
5: Var_a:=表达式5;
6: Var_a:=表达式6;
end;
其它语句...
end;
但是当某几个CheckBox被选中时(选中总数量用i_sum表示,i_sum=i1+i2+i3+i4+i5+i6)
需根据具体选中的某几个CheckBox执行For循环.
For j:=1 to i_sum do
begin
Var_a:=表达式?;(即j=1时,执行第一个被选中CheckBox所对应的表达式,j=2时,执行第二个被选中CheckBox所对应的表达式,以此类推,直到j=i_sum)
其它语句...
end;
举例说,我选中了i2,i3,i5三个CheckBox,则变量i2,i3,i5均为1,变量i1,i4,i6为0;总选中数量为i_sum=3;For循环为:
For j:=1 to 3 do
begin
Var_a:=表达式?;(即j=1时,执行Var_a:=表达式2;j=2时执行Var_a:=表达式3;j=3时执行Var_a:=表达式5)
其它语句...
end;
求助各位大侠:如何编写For循环内的代码,以判断是哪几个CheckBox被选中,并执行对应的变量赋值语句?
解决方案 »
- fastreport如何合并相同的行?
- 关于dbgrid控件的问题!
- Socket 的Sendto。。。。。。(有源码)
- 小问题
- 做程序员的苦恼!谁能帮助解决一下。
- 50分,每次对数据库做修改都需要dbgrid马上刷新显示数据,怎样做这函数
- delphi webbrowser
- 双显卡!有大礼包送上哦!
- 请教:怎样让TListBox的每个Item占多行及旧Item往下沉?有其它办法吗?
- 大虾,小虾, 抢分的时候到了: 求购一个Tcp/ip广播/接收广播的源程序(不许用元件),UDP广播不算!
- 求助Delphi7用FastRrport那个版本好
- 我在一个单元里定义的结构体,想在另一个单元里使用可是碰到了问题
var
check: array of Integer;//可以声明全局变量,方便在此引用
i:Integer;
begin
SetLength(check,6);//这个可以在初始化时创建
for i := 0 to High(check) do
begin
if check[i] > 0 then
begin
Var_a := 表达式check[i]
end;
end;
end;说明,在checkbox选中时,把对应的check[i]的值赋值为该checkbox对应表达式的序号,如5,6
如果为选中的,把check[i]:=0;
1、設置checkbox的tag屬性,若被選中,則設定tag為1
if checkbox.check then checkbox.tag:=1 else checkbox.tag:=0
記得在formcreate時也做這個檢查
2、將這些checkbox放到專門的容器中,如果數量確定,就不需要了,直接找給定的組件
for i:=0 to Container.WinControls.Count-1 do
begin
if 元件1的tag=1 then
if 元件2的tag=1 then
end;
另外,下列赋值中表达式1,表达式2,表达式3,表达式4,表达式5,表达式6无数字上的联系,即可以表达成:表达式甲,表达式乙,表达式丙,表达式丁,表达式戊,表达式己等.
Var_a:=表达式1;
Var_a:=表达式2;
Var_a:=表达式3;
Var_a:=表达式4;
Var_a:=表达式5;
Var_a:=表达式6;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
procedure FormCreate(Sender: TObject);
private
b1,b2,b3,b4,b5,b6:Boolean;
procedure MyCheckBoxClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyCheckBoxClick(Sender: TObject);
begin
case TCheckBox(Sender).Tag of
1:b1:=TCheckBox(Sender).Checked;
2:b2:=TCheckBox(Sender).Checked;
3:b3:=TCheckBox(Sender).Checked;
4:b4:=TCheckBox(Sender).Checked;
5:b5:=TCheckBox(Sender).Checked;
6:b6:=TCheckBox(Sender).Checked;
end;
if b1 then
Var_a:=表達式1;
if b2 then
Var_a:=表達式2;
if b3 then
Var_a:=表達式3;
if b4 then
Var_a:=表達式4;
if b5 then
Var_a:=表達式5;
if b6 then
Var_a:=表達式6;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1.Tag:=1;
CheckBox2.Tag:=2;
CheckBox3.Tag:=3;
CheckBox4.Tag:=4;
CheckBox5.Tag:=5;
CheckBox6.Tag:=6;
CheckBox1.OnClick:=MyCheckBoxClick;
CheckBox2.OnClick:=MyCheckBoxClick;
CheckBox3.OnClick:=MyCheckBoxClick;
CheckBox4.OnClick:=MyCheckBoxClick;
CheckBox5.OnClick:=MyCheckBoxClick;
CheckBox6.OnClick:=MyCheckBoxClick;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
procedure FormCreate(Sender: TObject);
private
b1,b2,b3,b4,b5,b6:Boolean;
procedure MyCheckBoxClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyCheckBoxClick(Sender: TObject);
begin
case TCheckBox(Sender).Tag of
1:b1:=TCheckBox(Sender).Checked;
2:b2:=TCheckBox(Sender).Checked;
3:b3:=TCheckBox(Sender).Checked;
4:b4:=TCheckBox(Sender).Checked;
5:b5:=TCheckBox(Sender).Checked;
6:b6:=TCheckBox(Sender).Checked;
end;
if b1 then
Var_a:=表達式1;
if b2 then
Var_a:=表達式2;
if b3 then
Var_a:=表達式3;
if b4 then
Var_a:=表達式4;
if b5 then
Var_a:=表達式5;
if b6 then
Var_a:=表達式6;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1.Tag:=1;
CheckBox2.Tag:=2;
CheckBox3.Tag:=3;
CheckBox4.Tag:=4;
CheckBox5.Tag:=5;
CheckBox6.Tag:=6;
CheckBox1.OnClick:=MyCheckBoxClick;
CheckBox2.OnClick:=MyCheckBoxClick;
CheckBox3.OnClick:=MyCheckBoxClick;
CheckBox4.OnClick:=MyCheckBoxClick;
CheckBox5.OnClick:=MyCheckBoxClick;
CheckBox6.OnClick:=MyCheckBoxClick;
end;end.
var
AllCHECKBOX: array[1..6] of TCheckBox;
点的时候把他AllCHECKBOX[i] := 当前控件 不就OK 拉