3

私はたくさんグーグルで検索しましたが、私の質問に対する答えが見つかりません。

次のような関数にパラメータを正しく渡す方法: getPath('myParam')?

私はそのようなコードを持っています:

[Files]
Source: "AppName\*"; DestDir: "{code:getPath('myParam')}";

[Code]
function getPath(Param: String):String;
  var  objRegExp: String;
      path: Variant;
begin
  path := ExpandConstant('{userappdata}') +'\Adobe\' + Param + '\.+';
  objRegExp := CreateOleObject('VBScript.RegExp');
  objRegExp.Pattern := '(.+(\\Version )?( CS)?\d.+)';
   if objRegExp.Test(path) then
      begin
         objRegExpMatches := objRegExp.Execute(path);
         Result := objRegExpMatches.Item[0].Value;
      end;
end
4

1 に答える 1

3

に示すようにthe reference、スクリプト化された定数のプロトタイプは次のようになります。

{code:FunctionName|Param}

そのため、関数名の後に charを追加し|、スクリプト化された定数関数呼び出しから一重引用符でかっこを削除する必要があります。疑似コードでは、次のようになります。

[Files]
Source: "AppName\*"; DestDir: "{code:GetPath|Your input string value}";

[Code]
function GetPath(Param: string): string;
begin
  MsgBox(Param, mbInformation, MB_OK);
end;
于 2013-05-21T07:54:54.270 に答える