type
 PMyRec = ^TMyRec; 
 TMyRec = packed record
   a,b,c: string;
 end;
 TMyList = class(TList)  public 
    property Items[Index: Integer]: PMyRec read ....
    procedure Add(Item: PMyRec); overload;
    procedure Add(a,b,c: string); overload;
  end;第二个Add的实现方法怎么写?
我这么写:
procedure TMyList.Add(a,b,c: string);
var
  rec: TMyRec;
begin
 rec.a:=a;
 rec.b:=b;
 rec.c:=c;
 
  Add(@rec);
end; 但是在使用Items[Index]读取的时候出错了!

解决方案 »

  1.   

    procedure TMyList.Add(a,b,c: string);
    var
      rec: PMyRec;
    begin
     new(rec);
     rec^.a:=a;
     rec^.b:=b;
     rec^.c:=c;
     
      Add(rec);
    end;
      

  2.   

    JavaD(一竿残照)写的是对的,没有对rec分配空间怎么能负值
    不过你的方法我看不太明白,这个方法可以运行通过么,用个函数就可以阿
      

  3.   

    To bluekitty(可爱猪猪) 
    编译没问题给Rec:TMyRec赋值就自动分配内存 只是出了Add函数rec被释放了而已