如何从Delphi中的TGroupBox获取复选框值?

时间:2015-09-18 08:27:50

标签: delphi checkbox

我在表单中有一个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;

我的方法是否正确?或者还有其他方法可以做到这一点。

1 个答案:

答案 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;

最后一部分

  

如果他没有选择一个,则默认启用复选框值   需要选择一个数组。

没有任何意义。