有一个过程,看起来像
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;注意: TVar1和TVar2是全局变量
在按钮的onclick事件中调用该过程,然后使用创建的对象是不起作用的
是不是delphi不允许创建具有不同参数的过程?
发布于 2012-07-03 00:28:57
在您提供的代码示例中,TVar1和TVar2不是全局变量,它们是局部参数。它们没有被标记为var参数,因此它们将接收传递到函数调用中的任何参数值的副本,并且对这些局部变量所做的任何更改都不会被传递回调用者。如果在其他地方还声明了名为TVar1和TVar2的全局变量,这并不重要,在此过程中,局部参数将优先。
如果要将修改传回调用方,请将参数声明为var参数。
Procedure TestProc(var TVar1, TVar2 : variant);https://stackoverflow.com/questions/11295432
复制相似问题