C
chzi826
Unregistered / Unconfirmed
GUEST, unregistred user!
type Taa=Record
a:integer;
b:string;
End;
procedure f(var aa:array of Taa);
var i:integer;
begin
for i:=0 to length(aa)-1 do aa.a:=1;
end;
procedure click;
var c1,c2,c3:Ta;
begin
f([c1,c2,c3]);
end;
这样会报"Constant object cannot be passed as var parameter",如果把f函数里的var去掉就能正常执行
我的想法大概是这样的:
开始是定义好 c1,c2,c3,c4:Taa ,Taa是个比较复杂的记录类型
然后在传参时是有选择性的,比如f([c1,c3])或f([c2,c3,c4]),由f函数来给传进来的Taa类型赋值
如果这种写法不行的话,是不是可以用指针,用指针的话能解决吗?该怎样做?
a:integer;
b:string;
End;
procedure f(var aa:array of Taa);
var i:integer;
begin
for i:=0 to length(aa)-1 do aa.a:=1;
end;
procedure click;
var c1,c2,c3:Ta;
begin
f([c1,c2,c3]);
end;
这样会报"Constant object cannot be passed as var parameter",如果把f函数里的var去掉就能正常执行
我的想法大概是这样的:
开始是定义好 c1,c2,c3,c4:Taa ,Taa是个比较复杂的记录类型
然后在传参时是有选择性的,比如f([c1,c3])或f([c2,c3,c4]),由f函数来给传进来的Taa类型赋值
如果这种写法不行的话,是不是可以用指针,用指针的话能解决吗?该怎样做?