第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参数的类型 相同
为什么呢?
我英语不太好。抱歉。
为什么不能编译?
答案 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.