Installation Inno Setup-从另一个对话框打开目录浏览对话框而不隐藏它

Installation Inno Setup-从另一个对话框打开目录浏览对话框而不隐藏它,installation,inno-setup,pascalscript,Installation,Inno Setup,Pascalscript,我正在使用以下代码:如何从另一个对话框打开目录浏览对话框而不隐藏它 不幸的是,函数打开的对话框被实现为将向导窗体作为所有者窗口。这将有效地将所有其他打开的对话框移到向导窗体后面,同时显示“浏览”对话框(请注意,对话框不是隐藏的,它们只是被向导窗体遮住了) 您可以做什么: 从头开始重新执行BrowseForFolder。这是一项艰巨的任务 您可以使用什么来代替您的解决方案。 有关示例,请参见 尽管我必须承认,现在我明白了,需要允许不同文件夹中有不同的文件,但这可能不再是最好的解决方案 作为一

我正在使用以下代码:如何从另一个对话框打开目录浏览对话框而不隐藏它

不幸的是,函数打开的对话框被实现为将
向导窗体作为所有者窗口。这将有效地将所有其他打开的对话框移到
向导窗体
后面,同时显示“浏览”对话框(请注意,对话框不是隐藏的,它们只是被
向导窗体
遮住了)


您可以做什么:

  • 从头开始重新执行
    BrowseForFolder
    。这是一项艰巨的任务
  • 您可以使用什么来代替您的解决方案。
    有关示例,请参见
    尽管我必须承认,现在我明白了,需要允许不同文件夹中有不同的文件,但这可能不再是最好的解决方案
  • 作为一种解决方法,您可以通过滥用不同的浏览对话框实现,而不会出现
    BrowseForFolder
    的问题:

    var
    伪造页面:TInputDirWizardPage;
    过程BrowseForFolderEx(变量目录:String);
    开始
    FakePage.Values[0]:=目录;
    FakePage.Buttons[0].OnClick(FakePage.Buttons[0]);
    目录:=FakePage.Values[0];
    结束;
    过程初始化Wizard();
    变量
    NewFolderName:字符串;
    开始
    NewFolderName:=设置消息(msgButtonNewFolder);
    FakePage:=CreateInputDirPage(wpWelcome,,,,,,,False,NewFolderName);
    伪造页面。添加(“”);
    结束;
    函数ShouldSkipPage(PageID:Integer):布尔值;
    开始
    结果:=(PageID=FakePage.ID);
    结束;
    
    使用
    BrowseForFolderEx
    而不是
    BrowseForFolder

    过程选择文件浏览按钮点击(发件人:ToObject);
    变量
    Dir:字符串;
    开始
    Dir:=GetSelectFilePath;
    BrowseForFolderEx(目录);
    选择FilePathEdit.Text:=添加反斜杠(Dir);
    结束;