我定义了,edit1,edit2,edit3,edit4,edit5,edit6,edit7,edit8
我想用一个循环,将edit的值分别负值,请问可以用什么方法
num:=1;
while num<9 do
begin
  使用eidt自动加1等于num的值
  num:=num+1;
end;希望得到的结果是
edit1.text=1
edit2.text=2
edit3.text=3
edit4.text=4
edit5.text=5
edit6.text=6
edit7.text=7
edit8.text=8
请问如何实现

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
    begin
       for i := 1 to 8 do
       begin
        if FindComponent('edit'+IntToStr(i)) is TEdit then
          (FindComponent('edit'+IntToStr(i)) as TEdit).Text := IntToStr(i);
       end;
    end;
      

  2.   

    如果使用了访问数据的adoquery,就不行了,请指教
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
    begin
      with adoquery do
      begin
       open;
       with (not eof) and (i<9) do
       begin
          if FindComponent('edit'+IntToStr(i)) is TEdit then
          (FindComponent('edit'+IntToStr(i)) as TEdit).Text := IntToStr(i);
          i:=i+1;
          next;
       end;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
    begin
      with adoquery do
      begin
       open;
       with (not eof) and (i<9) do
       begin
          if FindComponent('edit'+IntToStr(i)) is TEdit then
          (FindComponent('edit'+IntToStr(i)) as TEdit).Text := IntToStr(i);
          i:=i+1;
          next;
       end;
    end;首先你的i没有初始化,
    然后你的with  应该是while吧。