欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Inno Setup创建自定义wizard

程序员文章站 2024-02-21 14:10:34
...

inno Setup打包在安装过程中添加自定义wizard或者操作步骤可以从3个维度去定位执行

1)step change

对应:procedure CurStepChanged(CurStep: TSetupStep);

2)page change

对应:procedure CurPageChanged(CurPageID: Integer);

3)button点击

对应:function NextButtonClick(CurPageID: Integer): Boolean;

 

定义wizard是在procedure InitializeWizard();中设计和定义,具体出现的位置可以通过上面三个维度去定位让它出现的位置

下面是定义了2个wizard,一个是进度条,一个是带有输入框和label的wizard界面:

其中带有输入框和label界面效果如下:

Inno Setup创建自定义wizard

procedure InitializeWizard;
var
  ed1,ed2:TEdit;
  Label1,Label2,Label3: TNewStaticText;
  AfterID: Integer;

begin
  OutputProgressWizardPage := CreateOutputProgressPage('Installing', '{#ProgressInfo}');

  LoginInfoPage:=CreateCustomPage(wpInstalling, 'xxxx Server Login Info', '{#LoginInfo}');
  Label1 := TNewStaticText.Create(LoginInfoPage);
  Label1.Caption := 'Username: ';
  //Label1.Cursor := crHand;
  Label1.Parent := LoginInfoPage.Surface;
  //Label1.Top:= ScaleY(10);
  Label1.Top:= 10;

  ed1:=TEdit.Create(LoginInfoPage);
  ed1.Top:=Label1.Top-3;
  ed1.Left:=Label1.Left+Label1.Width+ 2;
  ed1.Parent:=LoginInfoPage.Surface;
  ed1.Text:='admin';
  ed1.ReadOnly:= True;

  Label2 := TNewStaticText.Create(LoginInfoPage);
  Label2.Caption := 'Password: ';
  Label2.Top := Label1.Top + Label1.Height + 20;
  Label2.Left:= Label1.Left;
  Label2.Parent := LoginInfoPage.Surface;

  ed2:=TEdit.Create(LoginInfoPage);
  ed2.Top:=Label2.Top-3;
  ed2.Left:=ed1.Left;
  ed2.Parent:=LoginInfoPage.Surface;
  ed2.Text:='admin';
  ed2.ReadOnly:= True;

  Label3 := TNewStaticText.Create(LoginInfoPage);
  Label3.Caption := 'Note: You can chagne the password after login.';   //SetBounds
  //Label3.Font.Style :=Label3.Font.Style + [fsUnderline] +[fsBold];// [fsStrikeOut]是删除线
  Label3.Font.Style :=Label3.Font.Style + [fsItalic];
  Label3.Font.Size := 8;
  Label3.Parent := LoginInfoPage.Surface;
  Label3.Top:= Label1.Top + Label1.Height +Label2.Top + Label2.Height+30;
 
end;

 

相关标签: Innosetup pascal