假如创建10个button,命名依次为btn0, btn1.....btn9; 
想改动每个button的caption:例如:
btn0.caption := '0';
btn1.caption := '0';
btn2.caption := '0';
btn3.caption := '0';
btn4.caption := '0';
btn5.caption := '0';
btn6.caption := '0';
btn7.caption := '0';
btn8.caption := '0';
btn9.caption := '0';
btn10.caption := '0';但不想写太多代码
如何用循环来实现

解决方案 »

  1.   

    var
      i:integer;
    begin
      for i:=ComponentCount-1 downto 0 do 
        if (Components[i] is TButton) then (Components[i] as TButton).Caption:='0';
    end;
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i : integer;
      btn : TButton;
    begin
      for i := 0 to 9 do
      begin
        btn := TButton (FindComponent ('btn' + inttostr(i)));
        if btn <> nil then
          btn.Caption := '0';
      end;
    end;
      

  3.   

    多谢各位,小弟没说清楚,如果我稍改一下题目如下,再请各位指点btn0.caption := '0';
    btn1.caption := '1';
    btn2.caption := '2';
    btn3.caption := '3';
    btn4.caption := '4';
    btn5.caption := '5';
    btn6.caption := '6';
    btn7.caption := '7';
    btn8.caption := '8';
    btn9.caption := '9';
    btn10.caption := '10';
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i : integer;
      btn : TButton;
    begin
      for i := 0 to 9 do
      begin
        btn := TButton (FindComponent ('btn' + inttostr(i)));
        if btn <> nil then
          btn.Caption := IntToStr(i);
      end;
    end;