Inno Setup自定义表单隐藏在安装页面下方

时间:2015-01-30 05:22:41

标签: inno-setup

我们在交互式安装的[Run]部分显示自定义表单。但是自定义表单隐藏在安装页面下方。有没有办法在安装程序上显示自定义表单,如消息框。

使用以下代码创建自定义表单。并在[运行]部分调用它。

[Setup]
AppId=Display Form
AppName=Display Form
DefaultDirname={sd}\Test
DisableDirPage=yes
WindowVisible=no
OutputDir=C:\Test
[Run]
Filename: C:\Test.exe; Flags: runhidden; AfterInstall : PassphraseForm;
[Code]
Procedure PassphraseForm();
var
  Form: TSetupForm;
  OKButton: TNewButton;
  mLabel:TLabel;
  LogFileString : AnsiString;
  RichEditViewer: TRichEditViewer;
  cancelclick: Boolean;
begin

Form := CreateCustomForm();
try
Form.ClientWidth := ScaleX(400);
Form.ClientHeight := ScaleY(180);
Form.Caption := 'Server';
Form.Center
mLabel:=TLabel.Create(Form);
mLabel.Caption:='';
mLabel.AutoSize:=True;
mLabel.Alignment:=taCenter;

OKButton := TNewButton.Create(Form);
OKButton.Parent := Form;
OKButton.Width := ScaleX(70);
OKButton.Height := ScaleY(30);
OKButton.Left := ScaleX(170);
OKButton.Top := ScaleY(142);
OKButton.Caption := 'OK';
OKButton.ModalResult := mrOk;

RichEditViewer :=TRichEditViewer.Create(Form);
RichEditViewer.Width :=360;
RichEditViewer.Height :=120;
RichEditViewer.Top := 20;
RichEditViewer.Left :=20;
RichEditViewer.Alignment:=taLeftJustify;
RichEditViewer.Parent := Form;
RichEditViewer.WordWrap :=True;
RichEditViewer.ScrollBars := ssBoth;
RichEditViewer.UseRichEdit := True;
RichEditViewer.Font.Size:=9;
RichEditViewer.RTFText := 'Server Value'; 

RichEditViewer.ReadOnly := True;
Form.ActiveControl := OKButton;
cancelclick:=True;
if Form.ShowModal() = mrOk then
begin
  Log('Custom form is displayed succesfully');
end;
finally
Form.Free();
end;
end;

1 个答案:

答案 0 :(得分:0)

好的,这是Inno Setup非常好(无证)的功能! 我不知道[Run]部分支持AfterInstall参数(手册中未提及)

无论如何,您的代码适用于我:picture

我认为没有办法在主窗体下面显示表格,因为它是以模态形式创建的,并以 Form.ShowModal()显示。

您确定该表单未在其他地方显示吗?例如。在第二台显示器/屏幕上或屏幕边框外? 还要检查调试器 - 可能只是在表单即将显示时遇到断点,你需要按F9继续。

相关问题