Search code examples
delphidelphi-7

Resetting a program in delphi


I am doing this program in Delphi 7 and using a Page-Control do any of you have a quick way of resetting the Check Boxes and Combo Boxes that is op the page ? With out calling each Check Box and changing its Properties ? Because their is about 150 Check Boxes in the program and don't want to type every ones name out to reset it to unchecked ? I Tried to use the following code :

var
 i : Integer;
 cb : TCheckBox;
 cbx : TComboBox;
begin
 ADOQuery1.SQL.Clear;
  for i := 1 to (ComponentCount) do
    Begin
     if Components[i] is TCheckBox then
      begin
       cb := TCheckBox(Components[i]);
       cb.checked := false;
      end;
     if Components[i] is TComboBox then
      begin
       cbx := TComboBox(Components[i]);
       cbx.ItemIndex := -1;
      end;
   end;
End;

But I get a error List out od Bounds ? Any ideas why ?


Solution

  • Off the top of my head....This should run.

    procedure ResetControls(aPage:TTabSheet);
    var
      loop : integer;
    begin
      if assigned(aPage) then
      begin
        for loop := 0 to aPage.controlcount-1 do
        begin
          if aPage.Controls[loop].ClassType = TCheckBox then
            TCheckBox(aPage.Controls[loop]).Checked := false
          else if aPage.Controls[loop].ClassType = TComboBox then
            TComboBox(aPage.Controlss[loop]).itemindex := -1;
        end;
      end;
    end;
    

    edit: Corrected as pointed out by Remy