有一个看起来像的程序
Procedure TestProc(TVar1, TVar2 : variant);
Begin
TVar1 := CreateOleObject('Excel.Application');
TVar1.Workbooks.open('C:\Test\Test.xls');
TVar1.Workbooks[1].Worksheets[1].Name := 'Sheet_1';
TVar2 := TVar1.Workbooks[1].Worksheets['Sheet_1'];
End;
Run Code Online (Sandbox Code Playgroud)
注意:TVar1和TVar2是全局变量
在按钮的onclick事件中调用该过程然后使用创建的对象不起作用
难道delphi不允许创建具有变量参数的过程吗?
在你目前的代码示例TVar1和TVar2是不是全局变量,他们是本地的参数.它们没有标记为varparams,因此它们将接收传递给函数调用的任何参数值的副本,并且对这些局部变量所做的任何更改都不会传递回调用者.如果在其他地方也有名称TVar1和TVar2声明的全局变量,则无关紧要,在此过程中,本地参数优先.
如果要将修改传递回调用方,请将参数声明为var参数.
Procedure TestProc(var TVar1, TVar2 : variant);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |