"实际和正式var参数的类型必须相同"程序中的错误

Alp*_*per 6 delphi procedure

我试图在delphi中编写一个过程.此过程获取TControl后代元素的名称,然后尝试更改某些属性.但是当我尝试这样做时,Delphi会出现如下错误:

E2033实际和正式var参数的类型必须相同

程序:

procedure Change_prop(var Control: TControl;height:integer;width:integer);
begin
//......
end;
Run Code Online (Sandbox Code Playgroud)

用法示例:Change_prop(Label1, 50,200); 该错误的解决方案是什么.谢谢.

Dav*_*nan 10

您只需要删除Control参数中的var并使其成为值参数.因为Delphi对象实际上是作为引用类型实现的,所以即使将它们作为值或const参数传递给过程,也可以调用它们上的方法,更改成员字段等.


klu*_*udg 5

只需删除var - 您不需要它来更改Control的属性:

procedure Change_prop(Control: TControl;height:integer;width:integer);
begin
......
end;
Run Code Online (Sandbox Code Playgroud)