【问题标题】:Inno Setup change the CreateInputFilePage behaviour from Open to SaveInno Setup 将 CreateInputFilePage 行为从 Open 更改为 Save
【发布时间】:2015-08-11 00:32:40
【问题描述】:

我正在使用CreateInputFilePage 函数创建一个页面,该页面带有一个输入字段和一个允许选择路径和文件的浏览按钮。问题是我不想选择要打开的文件,我想指定要保存到的文件。指定不存在的路径和文件时的默认行为是提示

找不到文件。检查文件名,然后重试。

不幸的是,如果指定要保存到的文件,这不是必需的行为。在这种情况下需要提示

文件不存在。创建文件?

或类似的东西,并允许选择所选路径和文件。

理想情况下,“浏览”对话框中的“打开”按钮也应更改为“保存”。

是否可以按照描述修改此行为并更改按钮文本?如果是这样,如何做到这一点?

【问题讨论】:

    标签: inno-setup pascalscript


    【解决方案1】:

    使用TInputFileWizardPage.IsSaveButton property

    要实现确认,请处理TWizardPage.OnNextButtonClick 事件。

    var
      FileIndex: Integer;
    
    function InputFileCheck(Page: TWizardPage): Boolean;
    var
      Path: string;
    begin
      Result := True;
      Path := Trim(TInputFileWizardPage(Page).Values[FileIndex]);
      if Length(Path) = 0 then
      begin
        MsgBox('No file specified.', mbError, MB_OK);
        Result := False;
      end
        else
      if not FileExists(Path) then
      begin
        Result :=
          MsgBox('File does not exist. Create the file?', mbConfirmation, MB_YESNO) = IDYES;
      end;
    end;
    
    procedure InitializeWizard;
    var
      Page: TInputFileWizardPage;
    begin
      Page := CreateInputFilePage('...', '...', '...', '...');
      Page.OnNextButtonClick := @InputFileCheck;
    
      FileIndex := Page.Add('...', '...', '...');
      Page.IsSaveButton[FileIndex] := True;
      ...
    end;
    

    【讨论】:

    • 谢谢。完美地工作,正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多