【发布时间】:2015-08-27 19:14:28
【问题描述】:
以下sn-p,在XE6中
procedure TForm1.Test(CDS : TClientDataSet);
var
AGuid : TGuid;
lResult : Longint;
begin
lResult := SysUtils.CreateGUID(AGuid);
CDS.InsertRecord([AGuid, '', False]);
end;
产生错误信息
[dcc32 Error] Unit1.pas(73): E2150 Bad argument type in variable type array constructor
Fwiw,在发现这一点时,我试图将我的步骤回溯到编译器生成错误的该例程的先前版本
E2197 Constant object cannot be passed as var parameter
上线
lResult := SysUtils.CreateGUID(AGuid);
尽管引发它的事实证明是后续代码中的错误。
【问题讨论】:
-
你有三个答案,但没有一个能解决你想要解释的问题,根据你对他们每个人的 cmets。这是没有提出问题的结果,您的帖子只是发表声明。
-
@Sertac Akyuz:抱歉,如果我在 q 的标题末尾加上一个问号,可能会更清楚。没有争论的意思,但三个答案设法用“[不,编译器错误消息并不奇怪,因为...]”形式的答案解决了这个隐含的 q,我接受了大卫的答案,因为它最简洁。
-
三个答案解决了以“for what it isworth”开头的隐含问题。您已经向其中两个提到了 cmets 中的第一个错误,但您接受了一个。现在你说你得到了三个满意的答案。就这样吧。
标签: delphi delphi-xe6