我在表单中有一个groupbox和三个复选框。我想在一个值数组中获取用户选择的值,如果他没有选择一个,则需要将默认启用的复选框值选择为数组。
var selectedValues:String;
selectedValues:= getSelectedCheckboxValue(); //Here I want to pass the selected values to store it into an array
function getSelectedCheckboxValue(): string;
begin
var retArr:array[1..3] of string;
return retArr;
end;
我的方法是否正确?或者还有其他方法可以做到这一点。
答案 0 :(得分:1)
我相信我已经猜到了你在问什么
尝试此功能:
function GetSelectedCheckboxValue(CheckListBox: TCheckListBox): string;
var
i: Integer;
begin
Result := '';
for i := 0 to CheckListBox.Count - 1 do
if CheckListBox.Checked[i] then
Result := Result + CheckListBox.Items[i] + ',';
System.Delete(Result, Length(Result), 1);
end;
并将其称为:
Caption := GetSelectedCheckboxValue(CheckListBox1);
或者如果你想在数组中得到结果:
function GetSelectedCheckboxValue_Take2(CheckListBox: TCheckListBox): TStringDynArray;
var
i: Integer;
ResultArray: TStringDynArray;
begin
ResultArray := nil;
for i := 0 to CheckListBox.Count - 1 do
if CheckListBox.Checked[i] then
begin
SetLength(ResultArray, Length(ResultArray) + 1);
ResultArray[Length(ResultArray) - 1] := CheckListBox.Items[i];
end;
Result := ResultArray;
end;
最后一部分
如果他没有选择一个,则默认启用复选框值 需要选择一个数组。
没有任何意义。