如何在delphi中调用自定义函数记录struct参数?

时间:2015-10-26 08:24:19

标签: function delphi struct

第1单元来源:

type cha = record
 data1 : string;
 data2 : String;
end;

type Tchadata = Array of cha;

var
 A : Tchardata;
procedure TForm1.Button1Click(Sender: TObject);
begin
 GetData(A);
end;

Unit2来源:

type cha = record
 data1 : string;
 data2 : String;
end;

type Tchadata = Array of cha;

procedure Getdata(var Data : Tchadata);
begin

end;

这是我的Delphi代码。但是遵守......

  

[错误] Unit1.pas:必须是实际和正式var参数的类型   相同

为什么呢?

我英语不太好。抱歉。
为什么不能编译?

1 个答案:

答案 0 :(得分:3)

虽然类型的定义相同,但它们是截然不同的。因此错误信息。

您应该只准确一次定义记录。它看起来应该在Unit2中定义,并导入Unit1

<强> UNIT2

unit Unit2;

interface

type
  cha = record
    data1 : string;
    data2 : String;
  end;

  Tchadata = Array of cha;

procedure GetData(var Data : Tchadata);

implementation

procedure GetData(var Data : Tchadata);
begin
  // Populate Data
end;

end.

<强> 1单元

unit Unit1;

interface

uses
  Unit2; // imports types and the procedure

implementation

procedure Foo;
var
  Data: Tchadata;
begin
  GetData(Data);
end;

end.