【发布时间】:2014-07-18 06:36:19
【问题描述】:
只是一个小问题,我没有找到具体的答案,所以我猜在这里问可能会更快。
编译器拒绝以下代码并出现以下错误:
“动态数组”和“字符串数组”类型不兼容
TMailInfo = record
FileName,
MailAdresse,
MailBCC,
MailCC,
MailBetreff: string;
MailText,
Anhang: array of string;
MailAcknowledge,
MailTXT: Boolean
end;
class function TEMail.SendOutlookCOMMail(aFileName, aMailAdresse,
aMailBCC, aMailCC, aMailBetreff: string;
aMailText, aAnhang: array of string;
const aMailAcknowledge, aMailTXT: Boolean): Boolean;
var
mailInfo: TMailInfo;
begin
...
mailInfo.MailBetreff := aMailBetreff; // these two lines cause the error
mailInfo.MailText := aMailText;
...
end;
我做错了什么?两者都是字符串数组,所以我不明白为什么一个似乎是动态的。
【问题讨论】:
-
一些一般性建议。尽可能使用 const 参数。它更好地表达意图,并让编译器进行优化。
-
是的,没错,我也会重构它——我正在处理的不是我的代码,我只是在扩展功能
-
链接,因为它似乎与stackoverflow.com/q/22140387/460775重复
标签: delphi delphi-xe5