3

我需要用户浏览到一个文件,选择它,然后将此文件从选定的源复制到应用程序文件夹。

在这篇文章之后 如何在 Inno Setup 的 InputDirPage 中显示/使用用户选择的应用程序路径 {app}? 和 Inno Setup 文档,我来到了这段代码:

[Files]
Source: {code:GetDBPath}; DestDir: "{app}"; Flags: confirmoverwrite uninsneveruninstall;

[Code]
var
  SelectDBPage: TInputDirWizardPage;  
  DBPath: String;

procedure InitializeWizard;
begin
  SelectDBPage := CreateInputDirPage(wpSelectDir, 'Select file', 'Select file',    'Select file', False, '');
  SelectDBPage.Add('');
  SelectDBPage.Values[0] := ExpandConstant('{src}\DB.FDB');
  DBPath := SelectDBPage.Values[0];
end;

function GetDBPath():String;
begin
    Result := DBPath;
end;

我的问题是检索文件路径。在指令“源:{code:GetDBPath}”中,我收到“未知文件名前缀 {code:”错误。如何在 [File] 部分引用选定的文件路径?

谢谢

4

1 回答 1

3

您需要将external标志添加到[Files]条目中。这意味着源将在运行时进行评估,并且 CAN 包含{code:...}常量。

您也没有在GetDBPath()函数中获得正确的值。您返回的值DBPath在创建页面后未更新,而不是从SelectDBPage.Values[0].

于 2013-02-01T13:46:09.637 回答