【问题标题】:How to select multiple files in open dialog box in Inno Setup?如何在 Inno Setup 的打开对话框中选择多个文件?
【发布时间】:2020-12-11 14:17:54
【问题描述】:

这是 Inno Setup 中显示文件选择对话框的两种方法,

向导页面方法:

[Code]
Var
  PageFileDialog: TInputFileWizardPage;

procedure InitializeWizard;
begin
  PageFileDialog:= CreateInputFilePage(
    wpWelcome, 
    'Title 1', 
    'Title 2', 
    'Title 3'); 
 
  PageFileDialog:= PageFileDialog.Edits[PageFileDialog.Add('', 'Text file (*.txt)|*.txt', '.txt')];
end;

直接打开对话框,

[Code]
procedure InitializeWizard;
var
    FileName: string;
begin
    FileName := '';
    if GetOpenFileName('', FileName, '', 
    'Text Documents (*.txt)|*.txt|All Files|*.*', 'txt') then
    begin
       { Filename contains the selected filename }
    end;
end;

但是这些不允许在打开的对话框中选择多个文件,它只选择一个文件。如何选择多个文件?

有问题的方法Inno Setup with three destination folders 在这里不起作用。它应该是一个可以选择多个文件的文本框和浏览按钮。

【问题讨论】:

    标签: inno-setup pascalscript fileopendialog


    【解决方案1】:

    我使用 Inno Setup 6.0.5(u) 进行了测试。其他版本可能不同。

    看看GetOpenFileNameMulti函数: 来自documentation

    说明:
    显示一个对话框,使用户能够选择一个或多个现有文件。如果用户选择了一个文件,则返回 True,否则返回 False。所选文件的名称在 FileNameList 列表中返回。

    备注:
    过滤器示例:'文本文件 (.txt)|.txt|所有文件 (.)|.'

    例子:

    var
      FileNameList: TStrings;
    begin
      { Create the list }
      FileNameList := TStringList.Create;
      try
        if GetOpenFileNameMulti('', FileNameList, '',
           'Text Documents (*.txt)|*.txt|All Files|*.*', 'txt') then
        begin
          { Successful; user clicked OK }
          { FileNameList contains the selected filename(s) }
        end;
      finally
        FileNameList.Free;
      end;
    end;
    

    【讨论】:

      猜你喜欢
      • 2014-07-13
      • 2018-01-12
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多