一form上有72个edit.有一数组aa:array of array of string;
先将edit的值属值给数组。
edit11,.......edit19
edit21........edit29
....................
edit81........edit89
我想可能如下:
var
i,j:integer;
begin
for  i:=1 to 8 do
begin
 for j:=1 to 9 do
 begin
 a[i,j]:= ; 这里应该怎么写?
 end;
end;
end;请高手指点指点,谢啦

解决方案 »

  1.   

    a[i,j]:=TEdit(Form1.FindComponent('Edit'+IntToStr(i)+IntToStr(j))).Text;
      

  2.   

    这样写TEdit(Form1.FindComponent('Edit'+IntToStr(i)+IntToStr(j))).Text;
    可以吗
      

  3.   

    for  i:=0 to panel.ComponentCount-1 do
        begin
          if pan_panel.Components[i].Name='Myname' then
          begin
             ....
          end;
             ....
        end;
      

  4.   

    提示错误:
    access violation at address 0285bd24 in module 'report.ocx' read of address 00000010.
      

  5.   

    var
    i,j:integer;
    k : integer;
    begin
      for  i:=0 to 7 do
      begin
          for j:=0 to 8 do
          begin
            a[i,j] := (Form1.Controls[i * 8 + j] as TEdit).属性;
          end;
      end;
    end;
      

  6.   

    edit是放在什么上面的?
    var
        com:TComponent;    com:=Form1.FindComponent('Edit'+IntToStr(i)+IntToStr(j));
        if com<>nil then
            a[i,j]:=a[i,j]:=TEdit(com).Text;
      

  7.   

    提示错误:
    access violation at address 0285bd24 in module 'report.ocx' read of address 00000010.
      

  8.   

    var
      i,j,k:integer;
      a:array of array of string;
      MyEdit:Tcomponent;
    begin
      setlength(a,8,9);
      with groupbox1 do
      for k:= 0 to componentcount-1 do
      begin
        for i:=1 to 8 do
          for j:=1 to 9 do
          begin
            myedit:=findcomponent('edit'+inttostr(i)+inttostr(j));
            if (myedit is TEdit) then
              a[i,j]:=TEdit(myedit).text;
          end;
    end;
      

  9.   

    var
      i,j,k:integer;
      a:array of array of string;
      MyEdit:Tcomponent;
    begin
      setlength(a,8,9);
    //  with groupbox1 do                   //去掉这句
      for k:= 0 to componentcount-1 do
      begin
        for i:=1 to 8 do
          for j:=1 to 9 do
          begin
            myedit:=findcomponent('edit'+inttostr(i)+inttostr(j));
            if (myedit is TEdit) then
              a[i,j]:=TEdit(myedit).text;
          end;
    end;
      

  10.   

    procedure TForm1.Button1Click(Sender: TObject);
    var I:Integer;
    begin
        for I:=1 to 4 do
        begin
            (form1.FindComponent('edit'+IntToStr(I+4)) as Tedit).Text:=(form1.FindComponent('edit'+IntToStr(I)) as TEdit).Text;
        end;
    end;
    ----------------------------------------------
    上面是我做的一个测试,可行的,根据他改改就可以了
      

  11.   

    var
      i,j:integer;
      yy:array of array of string;
    begin
      setlength(yy,8,7);
      begin
        for i:=1 to 8 do
          for j:=1 to 7 do
          begin
             yy[i,j]:=TEdit(reportform.FindComponent('edit'+IntToStr(i)+IntToStr(j))).Text;
          end;
      end;
    end;