首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带可变参数的Delphi 7过程

带可变参数的Delphi 7过程
EN

Stack Overflow用户
提问于 2012-07-02 22:12:39
回答 1查看 1.1K关注 0票数 0

有一个过程,看起来像

代码语言:javascript
复制
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不允许创建具有不同参数的过程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-03 00:28:57

在您提供的代码示例中,TVar1TVar2不是全局变量,它们是局部参数。它们没有被标记为var参数,因此它们将接收传递到函数调用中的任何参数值的副本,并且对这些局部变量所做的任何更改都不会被传递回调用者。如果在其他地方还声明了名为TVar1TVar2的全局变量,这并不重要,在此过程中,局部参数将优先。

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

代码语言:javascript
复制
Procedure TestProc(var TVar1, TVar2 : variant);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11295432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档