为什么我们不能在inno-setup [Code]中声明局部const变量?

时间:2013-09-12 17:54:57

标签: const inno-setup pascal pascalscript

你知道为什么在声明本地const vars 时,脚本无法编译? 对不起,我知道帕斯卡很少,也无法弄清楚为什么这不起作用!

这个例子(参见 function CircleArea )表明我的语法应该没问题。 http://www.tutorialspoint.com/pascal/pascal_quick_guide.htm

这就是我想要做的事情:

//---placed within [Code]
procedure MyLog(const _functionName, _msg: String);
begin
  Log(_functionName + '(): ' + _msg);
end;

function MyExec(const _filename, _params, _dir: String): Boolean;
const // <--- compilation fails in this line!
  MethodName = 'MyExec';
var
  ResultCode: Integer;
begin
  MyLog(MethodName, _filename);
  // ... invoke Exec(), etc. ...
end;
//---

1 个答案:

答案 0 :(得分:8)

你正在努力。如果Inno安装程序使用Pascal它甚至可以工作,但由于它基于自定义Pascal Script语言,限制声明局部常量,所以你不能这样做。您必须全局定义常量:

[Code]
const
  MethodName = 'MyExec';

function MyExec(const _filename, _params, _dir: String): Boolean;
var
  ResultCode: Integer;
begin
  MyLog(MethodName, _filename);
  // ... invoke Exec(), etc. ...
end;