Table of Contents

TXlsFile.GetCheckboxState Method

Gets the value of a checkbox in the active sheet. Note that this only works for checkboxes added through the Forms toolbar. It won't return the values of ActiveX checkboxes.

Remarks

Note that if the checkbox is linked to a cell and you changed the cell value, this method will return the cell value.

Syntax

Unit: FlexCel.XlsAdapter

function TXlsFile.GetCheckboxState(const objectIndex: Integer; const objectPath: string): TCheckboxState; 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"

Returns

If the checkbox is checked or not.

Examples

To get all the checkboxes in the active sheet, you can use this code:

var
  xls: TXlsFile;
  i: Int32;
  shp: IShapeProperties;
begin
  xls := TXlsFile.Create('checkboxes.xls');  //Open the file we want to read.
  try
    for i := 1 to xls.ObjectCount do  //Loop over all objects.
    begin
      shp := xls.GetObjectProperties(i, false);
      if shp.ObjectType = TObjectType.CheckBox then  //Is it a checkbox?
      begin
        case xls.GetCheckboxState(i, '') of
          TCheckboxState.Unchecked: LogMessage(shp.Text + ' : Unchecked');
          TCheckboxState.Checked: LogMessage(shp.Text + ' : Checked');
          TCheckboxState.Indeterminate: LogMessage(shp.Text + ' : Indeterminate');
        end;

      end;

    end;
  finally
    xls.Free;
  end;
end;

See also