向记录类型添加一个构造函数,该构造函数采用所需的参数。
TRec = record
s : string;
i : integer;
constructor create( s_ : string; i_: integer );
end;
constructor TRec.create( s_ : string; i_: integer );
begin
s := s_;
i := i_;
end;
procedure test( recs_ : array of TRec );
var
i : Integer;
rec : TRec;
begin
for i := 0 to high(recs_) do
rec := recs_[i];
end;
procedure TForm1.Button1Click( sender_ : TObject );
begin
test( [TRec.create('1',1), TRec.create('2',2)] );
end;
正如 Remy Lebeau 所反映的,它仅适用于 Delphi 2006 或更新版本。如果您有一个较旧的 IDE,您应该创建一个实用程序类,其中包含一个符合上述记录构造函数的方法(以及其他方法):
TRecUtility = class
public
class function createRecord( s_ : string; i_: integer ) : TRec;
//... other utility methods
end;
procedure foo;
begin
test( [TRecUtility.createRec('1',1), TRec.createRec('2',2)] );
end;