看一下这个(TList的帮助)
procedure TForm1.FormButton1Click(Sender: TObject);type
  PMyList = ^AList;
  AList = record
    I: Integer;
    C: Char;
  end;var  MyList: TList;
  ARecord: PMyList;
  B: Byte;
  Y: Word;
begin
  MyList := TList.Create;
  try
    New(ARecord);
    ARecord^.I := 100;
    ARecord^.C := 'Z';
    MyList.Add(ARecord); {Add integer 100 and character Z to list}
    New(ARecord);
    ARecord^.I := 200;
    ARecord^.C := 'X';
    MyList.Add(ARecord); {Add integer 200 and character X to list}    { Now paint the items onto the paintbox}
    Y := 10;             {Variable used in TextOut function}    for B := 0 to (MyList.Count - 1) do
    begin
      ARecord := MyList.Items[B];
      Canvas.TextOut(10, Y, IntToStr(ARecord^.I)); {Display I}
      Y := Y + 30;  {Increment Y Value again}
      Canvas.TextOut(10, Y, ARecord^.C);  {Display C}
      Y := Y + 30;  {Increment Y Value}
    end;    { Cleanup: must free the list items as well as the list }
   for B := 0 to (MyList.Count - 1) do
   begin     ARecord := MyList.Items[B];
     Dispose(ARecord);
   end;
  finally
    MyList.Free;
  end;
end;

解决方案 »

  1.   

    把类型定义拿出来,在type中定义好
      

  2.   

    如何在type中定义动态数组的指针?请举个例子。
      

  3.   

    type
      MyRecord = record
        i : integer;
        j : integer;
    end;
      RecordArrays = array of MyRecord;
      //PRecArr = ^RecordArrays;procedure SendRecords(Var a : RecordArrays);
    我不知道你为什么非得要传指针,传一个数组不就解决问题了吗?
    要用指针就回到c++中去,
    在Delphi中少用指针!
      

  4.   

    你的问题到底解决没有?
    传不进去是因为类型不匹配,你得统一定义类型,如:
    type
      Myarray = array of integer;
    var
      a,b: array of integer;
      c : array of integer;
      d : Myarray;
      e : Myarray;
    begin
      setlength(a,5);
      ....
      ....
      b := a; //正确;
      d := e;//正确;  c := a;//错误,类型不匹配;
      d := a;//错误,类型不匹配;
      d := c;//错误,类型不匹配; 
    end;  delphi对类型的检查特别严格,根本不象c++中那样灵活,当然这样一来隐性的错误就少多了!