1
我使用此代码:Inno Setup - How to create a custom form that allows me to locate the files to decompress?。如何从另一个对话框打开目录浏览对话框而不隐藏它?Inno Setup - 从另一个对话框打开目录浏览对话框而不隐藏它
我使用此代码:Inno Setup - How to create a custom form that allows me to locate the files to decompress?。如何从另一个对话框打开目录浏览对话框而不隐藏它?Inno Setup - 从另一个对话框打开目录浏览对话框而不隐藏它
通过BrowseForFolder
功能打开的对话框不幸的是实现为具有WizardForm
作为所有者的窗口。当显示“浏览”对话框时(注意对话框没有隐藏,它们只是被WizardForm
遮住),这有效地将所有其他打开的对话框移动到WizardForm
后面。
你可以做什么:
BrowseForFolder
。这是一项艰巨的任务。CreateInputDirPage
代替你的解决方案,用什么I have suggested you at the very beginning。 作为一种变通方法,您可以通过TInputDirWizardPage
滥用不同的浏览对话框执行,即不遭受BrowseForFolder
的问题:
var
FakePage: TInputDirWizardPage;
procedure BrowseForFolderEx(var Directory: String);
begin
FakePage.Values[0] := Directory;
FakePage.Buttons[0].OnClick(FakePage.Buttons[0]);
Directory := FakePage.Values[0];
end;
procedure InitializeWizard();
begin
FakePage :=
CreateInputDirPage(wpWelcome, '', '', '', False, SetupMessage(msgButtonNewFolder));
FakePage.Add('');
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := (PageID = FakePage.ID);
end;
使用BrowseForFolderEx
而不是BrowseForFolder
。
procedure SelectFileBrowseButtonClick(Sender: TObject);
var
Dir: string;
begin
Dir := GetSelectFilePath;
BrowseForFolderEx(Dir);
SelectFilePathEdit.Text := AddBackslash(Dir);
end;