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界面效果如下:
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;
上一篇: 365.水壶问题
下一篇: mysql prompt的用法详解