Delphi 7具有变量参数的过程

KE5*_*E50 0 delphi delphi-7

有一个看起来像的程序

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不允许创建具有变量参数的过程吗?

dth*_*rpe 8

在你目前的代码示例TVar1和TVar2是不是全局变量,他们是本地的参数.它们没有标记为varparams,因此它们将接收传递给函数调用的任何参数值的副本,并且对这些局部变量所做的任何更改都不会传递回调用者.如果在其他地方也有名称TVar1和TVar2声明的全局变量,则无关紧要,在此过程中,本地参数优先.

如果要将修改传递回调用方,请将参数声明为var参数.

Procedure TestProc(var TVar1, TVar2 : variant);
Run Code Online (Sandbox Code Playgroud)