我有一个包含80多个选项的组件列表,用户可以选择然后安装。
安装程序会记住以前的安装组件并自动检查组件,现在,如果用户取消选择全部,则组件存在"组件存在"显示警告信息框。
由于用户取消选择了所有80个选项,因此列表变长,消息框超出屏幕空间,用户现在卡住了。
我知道消息中有NoUninstallWarning,其中包含警告消息的文本,并将一个参数作为%1发送<
有没有办法可以更改参数值,而不是将所有选项列在单独的行中,我想将它们以逗号分隔?
或者,如果我可以在消息框中有一个滚动条?
请帮忙
答案 0 :(得分:1)
不,此消息是内部的,如果不修改Inno自己的源代码,则无法自定义。
在这种情况下,用户不应该被完全卡住 - 他们应该能够按ESC返回到组件选择窗口,然后再次选择所有内容。
避免此问题的一种简单方法是不允许用户在安装后取消选择组件。您可以使用以下代码执行此操作:
var
InstalledComponentsDisabled: Boolean;
procedure CurPageChanged(CurPageId: Integer);
var
i: Integer;
begin
if (CurPageId = wpSelectComponents) and
(WizardForm.PrevAppDir <> '') and
not InstalledComponentsDisabled then begin
InstalledComponentsDisabled := True;
for i := 0 to WizardForm.ComponentsList.Items.Count - 1 do begin
if WizardForm.ComponentsList.Checked[i] then begin
WizardForm.ComponentsList.ItemEnabled[i] := False;
end;
end;
end;
end;
这与升级fixed
上已安装任何内容的效果类似。
另一种选择是将disablenouninstallwarning
放在所有组件上,然后自己完全实现消息框,添加一些静态文本警告,关于永久删除页面上的组件,甚至做一些实际支持删除组件(例如[InstallDelete]
条目或UninsHs)。