Table of Contents

TXlsFile.SetRadioButtonState Method

Sets the value of a radio button in the active sheet. Note that this only works for radio buttons added through the Forms toolbar. It won't return the values of ActiveX radio buttons

Remarks

If the radio button is linked to a cell, this method will change both the radio button and the cell.

Syntax

Unit: FlexCel.XlsAdapter

procedure TXlsFile.SetRadioButtonState(const objectIndex: Integer; const objectPath: string; const selected: Boolean); override;

Parameters

<-> Parameter Type Description
const objectIndex Integer Index of the object (1 based)
const objectPath string Index to the child object you want to change the property.
If it is a simple object, you can use String.Empty here, if not you need to get the ObjectPath from TExcelFile.GetObjectProperties(Integer, Boolean)
If it is "absolute"(it starts with "\"), then the path includes the objectIndex, and the objectIndex is not used. An object path of "\1\2\3" is exactly the same as using objectIndex = 1 and objectPath = "2\3"
const selected Boolean If true, the option button will be set, and all other buttons in the range will be deselected.
When false the radio button will be deselected.

Examples

To set a radio button given its text, use the code:

var
  xls: TXlsFile;
  i: Int32;
  shp: IShapeProperties;
begin
  xls := TXlsFile.Create('radiobuttons.xls');
  try
    for i := 1 to xls.ObjectCount do
    begin
      shp := xls.GetObjectProperties(i, false);
      if (shp.ObjectType = TObjectType.OptionButton) and (shp.Text = 'MyText') then
      begin
        xls.SetRadioButtonState(i, '', true);
      end;
    end;
  finally
    xls.Free;
  end;
end;

To change a radio button given its name instead of its text, replace shp.Text == "MyText" by shp.Name == "MyName" in the code above.

See also