delphi判断多个CheckBox是否勾选(几种做法)
看到群里网友在问这个问题?尝试写一下代码
1、用FindComponent函数 根据控件名称动态获取对应的控件状态
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; str: string; begin str := ''; for i := 1 to 3 do // 假设需要判断三个checkbox begin if (FindComponent('CheckBox' + IntToStr(i)) as TCheckBox).Checked then str := str + '1' else str := str + '0'; end; ShowMessage(str); // 显示结果 end;
2、群里大老说可以用数组来实现
procedure TForm1.Button1Click(Sender: TObject);//代码也可以加到Checkbox的onClick var checkboxArray: array of TCheckBox; str: string; i: Integer; begin SetLength(checkboxArray, 7); // 假设有7个checkbox checkboxArray[0] := CheckBox1; checkboxArray[1] := CheckBox2; checkboxArray[2] := CheckBox3; checkboxArray[3] := CheckBox4; checkboxArray[4] := CheckBox5; checkboxArray[5] := CheckBox6; checkboxArray[6] := CheckBox7; str := ''; for i := 0 to Length(checkboxArray) - 1 do begin if checkboxArray[i].Checked then str := str + '1' else str := str + '0'; end; // 此时str的值就是所有checkbox的状态组成的字符串 Edit1.Text:=str; end;
3、把它写成函数
function GetCheckboxStatus(checkboxArray: array of TCheckBox): string; var str: string; i: Integer; begin str := ''; for i := 0 to Length(checkboxArray) - 1 do begin if checkboxArray[i].Checked then str := str + '1' else str := str + '0'; end; Result := str; end; procedure TForm1.CheckBox1Click(Sender: TObject); //调用 begin Edit1.text:= GetCheckboxStatus([CheckBox1, CheckBox2, CheckBox3,CheckBox4,CheckBox5,CheckBox6,CheckBox7]); end;