【发布时间】:2011-07-01 14:53:50
【问题描述】:
我知道what changed。我知道为什么。但是..
TComplicatedCallMaker = record
Param1: TRecordType;
Param2: TRecordType;
{...}
Param15: TRecordType;
procedure Call;
end;
function ComplicatedCall: TComplicatedCallMaker;
begin
{ Fill default param values }
end;
procedure DoingSomeWorkHere;
begin
with ComplicatedCall do begin
Param7 := Value7;
Param12 := Value12;
Call;
end;
end;
这在 Delphi 2010 之前完美运行。这是一种非常有用的技术,用于进行接受大量参数但通常只需要两个或三个参数的调用。但绝不是相同的。
现在它给出了......你猜怎么着?
E2064: Left side cannot be assigned to.
不能以某种方式禁用这种有用的新行为吗?关于如何修改模式以使其正常工作的任何想法?
因为严重的是,无缘无故失去了如此方便的技术(并重写了一堆代码)......
【问题讨论】:
-
我很惊讶它曾经工作过。
-
@David Hefferman:为什么?这是一个完全有效的技巧。没有黑客攻击,只有语言功能。
-
它被删除了,因为它从一开始就不应该被允许。
-
我没有将此问题与what changed 参考进行比较。特别是由于属性总是按照该主题描述的方式运行,因此它从未“改变”。
标签: delphi delphi-2010