ArrField[i]为
         0001
        0002
        0003
 For a:=1 to 3 do 想得到如下数组
         00011
        00021
        00031
        00012
        00022
        00032
        00013
        00023
        00033 
数组该怎么写呀

解决方案 »

  1.   

    type
      TArrField: array[1..3] of string;
    var
      arrList array[1..3] of TArrField;不知道是不是这个意思?
      

  2.   


    var
      i,j: byte;
    begin
      ListBox1.Items..Clear;
      for i:=1 to 3 do
        for j:=1 to 3 do
          ListBox1.Items.Add(ArrField[i]+IntToStr(j));
    end;
      

  3.   

    procedure TFrmOrderBy.BtnOrderClick(Sender: TObject);
    var
      FieldName: string;
       a,i: Integer;
         begin
      For a:=1 to StrToInt(Edit2.Text) do
    begin
      FieldName := DBgrid.Columns.Items[0].FieldName;
      SetLength(ArrField, ADODataSet1.RecordCount);
      ADODataSet1.First;
      ADODataSet1.DisableControls;
      
      for i := 0 to ADODataSet1.RecordCount - 1 do
      
      begin
        ArrField[i] := ADODataSet1.FieldByName(FieldName).AsString+IntToStr(a);
        ADODataSet1.Next;
      end;  
      ADODataSet1.EnableControls;
      end;
    end;
    想对dbgrid显示的内容再进行分组,分组数为a
    解释如下
    FieldName := DBgrid.Columns.Items[0].FieldName; (取得dbgrid第一列显示的内容)假如dbgrid显示的内容为
             0001 
            0002 
            0003 
    而且a为3时
    想得到的数组为
    00011 
            00021 
            00031 
            00012 
            00022 
            00032 
            00013 
            00023 
            00033  
    但目前ArrField[i]得到的为
             00013 
            00023 
            00033 
    错在哪呀
      

  4.   

    给个例子你,看你是否能领悟出来:procedure TForm1.Button1Click(Sender: TObject);
    var
    ArrField,ArrField2:array of string;
    i,j,v,l:integer;
    begin SetLength (ArrField,4);
     for  i:=1 to High(ArrField) do
     ArrField[i]:='000'+inttostr(i); j:=3;
     SetLength (ArrField2,j*High(ArrField)+1);
      l:=1;
      for v :=1  to 3 do
      for i :=1  to High(ArrField) do  begin
         ArrField2[l]:=ArrField[i]+inttostr(v);
         inc(l);
      end; for i:=1 to High(ArrField2) do
     ListBox1.Items.Add(ArrField2[i]); SetLength (ArrField,0);
     SetLength (ArrField2,0);end;
      

  5.   


    procedure TFrmOrderBy.BtnOrderClick(Sender: TObject); 
    var
    FieldName: string;
    a,i: Integer;
    begin  SetLength(ArrField,StrToInt(Edit2.Text)*ADODataSet1.RecordCount+1);
      i:=1;   ADODataSet1.DisableControls;  For a:=1 to StrToInt(Edit2.Text) do begin
      FieldName := DBgrid.Columns.Items[0].FieldName;
      ADODataSet1.First;
      while not ADODataSet1.eof do begin
        ArrField[i] := ADODataSet1.FieldByName(FieldName).AsString+IntToStr(a);
        ADODataSet1.Next;
        inc(i);
      end;
     end; ADODataSet1.EnableControls;end;