Присоединяюсь к этому вопросу, может кто-то знает как это реализовать? Заранее благодарю))Как изменить порядок страниц, что-бы страница wpSelectProgramGroup была после wpSelectDir а не после wpSelectComponents?
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: text\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: voice\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
[code]
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectComponents:
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectProgramGroupPage;
end;
wpSelectProgramGroup:
begin
WizardForm.SelectProgramGroupPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
end;
end;
end;
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: text\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: voice\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
[Icons]
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Check: DesktopIcoms;
[Code]
var
TasksPage: TWizardPage;
DopIcons: TLabel;
DopCheckIcons: TNewCheckBox;
function DesktopIcoms: Boolean;
begin
Result:= DopCheckIcons.Checked;
end;
procedure InitializeWizard();
begin
TasksPage := CreateCustomPage(wpWelcome, 'Выберите дополнительные задачи', 'Какие дополнительные задачи необходимо выполнить?');
with WizardForm.SelectTasksLabel do
begin
Parent:=TasksPage.Surface;
end;
DopIcons := TLabel.Create(WizardForm);
with DopIcons do
begin
Parent := TasksPage.Surface;
Caption := 'Дополнительные значки';
Left := ScaleX(40);
Top := ScaleY(32);
Width := ScaleX(150);
Height := ScaleY(13);
end;
DopCheckIcons := TNewCheckBox.Create(WizardForm);
with DopCheckIcons do
begin
Parent := TasksPage.Surface;
Left := ScaleX(40);
Top := ScaleY(50);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Создать значек на Рабочем столе: ';
Checked := True;
State := cbChecked;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectComponents:
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectProgramGroupPage;
end;
wpSelectProgramGroup:
begin
WizardForm.SelectProgramGroupPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
end;
end;
end;
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: text\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: voice\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: Soft; Description: Установить дополнительное программное обеспечение; GroupDescription: Дополнительное программное обеспечение:; Flags: unchecked
Name: Soft/DirectX; Description: Microsoft DirectX; Flags: unchecked
Name: Soft/vcredist_x86; Description: Microsoft Visual С++ 2005 Redistributable; Flags: unchecked
Name: Soft/vcredist_x64; Description: Microsoft Visual С++ 2005 Redistributable x64; Flags: unchecked; Check: IsWin64
Name: Soft/vcredist_x64; Description: Моё-1; Flags: unchecked; Check: IsWin64
Name: Soft/vcredist_x64; Description: Моё-2; Flags: unchecked; Check: IsWin64
Name: Soft/vcredist_x64; Description: Моё-3; Flags: unchecked; Check: IsWin64
Name: Soft/vcredist_x64; Description: Моё-4; Flags: unchecked; Check: IsWin64
Name: Soft/vcredist_x64; Description: Моё-5; Flags: unchecked; Check: IsWin64
Name: Soft/vcredist_x64; Description: Моё-6; Flags: unchecked; Check: IsWin64
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
[code]
var
TasksPage: TWizardPage;
procedure InitializeWizard();
begin
TasksPage := CreateCustomPage(wpWelcome, 'Выбор дополнительных задач', '...');
end;
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
TasksPage.ID:
begin
WizardForm.SelectProgramGroupPage.Notebook.ActivePage:= WizardForm.SelectTasksPage;
end;
wpSelectComponents:
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectProgramGroupPage;
end;
wpSelectProgramGroup:
begin
WizardForm.SelectProgramGroupPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
end;
end;
end;
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Files]
;Source: compiler:Examples\Readme.txt; DestDir: {app}; Check: IsChecked(0)
;Source: compiler:Examples\Readme.txt; DestDir: {app}; Check: IsChecked(1)
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: text\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: voice\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
[Icons]
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Check: IsChecked(1)
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; Check: IsChecked(2)
[Code]
var
TasksPage: TWizardPage;
CheckListBox: TNewCheckListBox;
BorderWidth: Integer;
function IsChecked(const Index: Integer): Boolean;
begin
Result:= CheckListBox.Checked[Index]
end;
procedure InitializeWizard();
begin
TasksPage := CreateCustomPage(wpWelcome, 'Выберите дополнительные задачи', 'Какие дополнительные задачи необходимо выполнить?');
with WizardForm.SelectTasksLabel do
begin
Parent:=TasksPage.Surface;
end;
CheckListBox := TNewCheckListBox.Create(WizardForm);
CheckListBox.Parent := TasksPage.Surface;
CheckListBox.SetBounds(ScaleX(0), ScaleY(30), ScaleX(417), ScaleY(180));
BorderWidth := (CheckListBox.Width-CheckListBox.ClientWidth) div 2;
CheckListBox.Flat := False;
CheckListBox.Color := clMenu;
CheckListBox.BorderStyle := bsNone;
CheckListBox.AddCheckBoxEx('Дополнитьельные значки', '', 0, False, True, True, True, nil,True); //IsChecked(0)
CheckListBox.AddCheckBoxEx('Создать ярлык на рабочем столе', '', 1, True, True, True, True, nil,True);//IsChecked(1)
CheckListBox.AddCheckBoxEx('Создать ярлык в Панели быстрого запуска ', '', 1,True, True, True, True, nil,True);//IsChecked(2)
CheckListBox.AddCheckBoxEx('Установить дополнительное программное обеспечение', '', 0, True, True, True, True, nil,True);//IsChecked(3)
CheckListBox.AddCheckBoxEx('Microsoft DirectX', '', 1,True, True, True, True, nil,True);//IsChecked(4)
CheckListBox.AddCheckBoxEx('Microsoft Visual С++ 2005 Redistributable', '', 1, True, True, True, True, nil,True);//IsChecked(5)
CheckListBox.AddCheckBoxEx('Microsoft Visual С++ 2005 Redistributable x64', '', 1,True, True, True, True, nil,True);//IsChecked(6)
CheckListBox.AddCheckBoxEx('Моё-1', '', 1, True, True, True, True, nil,True);//IsChecked(7)
CheckListBox.AddCheckBoxEx('Моё-2', '', 1,True, True, True, True, nil,True); //IsChecked(8)
CheckListBox.AddCheckBoxEx('Моё-3', '', 1, True, True, True, True, nil,True);//IsChecked(9)
CheckListBox.AddCheckBoxEx('Моё-4', '', 1,True, True, True, True, nil,True); //IsChecked(10)
CheckListBox.AddCheckBoxEx('Моё-5', '', 1, True, True, True, True, nil,True);//IsChecked(11)
CheckListBox.AddCheckBoxEx('Моё-6', '', 1,True, True, True, True, nil,True); //IsChecked(12)
end;
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectComponents:
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectProgramGroupPage;
end;
wpSelectProgramGroup:
begin
WizardForm.SelectProgramGroupPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
end;
end;
end;
;[MyCustomTaskList]
#Define Label1 "My Custom TaskList"
#Define NewCheckBox1 "NewCheckBox1"
#Define NewCheckBox2 "NewCheckBox2"
#Define NewCheckBox3 "NewCheckBox3"
#Define NewCheckBox4 "NewCheckBox4"
[Setup]
AppName=My Program
AppVersion=1.5
CreateAppDir=no
DisableProgramGroupPage=yes
DefaultGroupName=My Program
DisableWelcomePage=No
[_Code]
var
Bevel2: TBevel;
Label1: TLabel;
NewCheckBox1: TNewCheckBox;
NewCheckBox2: TNewCheckBox;
NewCheckBox3: TNewCheckBox;
NewCheckBox4: TNewCheckBox;
CheckListBox: TNewCheckListBox;
procedure CreateCustomPages;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(wpWelcome, 'Custom Page 1', 'Custom Text 1');
Bevel2 := TBevel.Create(WizardForm);
with Bevel2 do
begin
Left := ScaleX(0);
Top := ScaleY(32);
Width := ScaleX(417);
Height := ScaleY(186);
Shape := bsFrame;
Parent := Page.Surface;
end;
Label1 := TLabel.Create(WizardForm);
with Label1 do
begin
Caption := '{#Label1}';
Left := ScaleX(16);
Top := ScaleY(40);
Width := ScaleX(94);
Height := ScaleY(13);
Parent := Page.Surface;
end;
#ifdef NewCheckBox1
NewCheckBox1 := TNewCheckBox.Create(WizardForm);
with NewCheckBox1 do
begin
Left := ScaleX(24);
Top := ScaleY(64);
Width := ScaleX(97);
Height := ScaleY(17);
Caption := '{#NewCheckBox1}';
Parent := Page.Surface;
end;
#endif
#ifdef NewCheckBox2
NewCheckBox2 := TNewCheckBox.Create(WizardForm);
with NewCheckBox2 do
begin
Left := ScaleX(24);
Top := ScaleY(88);
Width := ScaleX(97);
Height := ScaleY(17);
Caption := '{#NewCheckBox2}';
Parent := Page.Surface;
end;
#endif
#ifdef NewCheckBox3
NewCheckBox3 := TNewCheckBox.Create(WizardForm);
with NewCheckBox3 do
begin
Left := ScaleX(24);
Top := ScaleY(112);
Width := ScaleX(97);
Height := ScaleY(17);
Caption := '{#NewCheckBox3}';
Parent := Page.Surface;
end;
#endif
#ifdef NewCheckBox4
NewCheckBox4 := TNewCheckBox.Create(WizardForm);
with NewCheckBox4 do
begin
Left := ScaleX(24);
Top := ScaleY(136);
Width := ScaleX(97);
Height := ScaleY(17);
Caption := '{#NewCheckBox4}';
Parent := Page.Surface;
end;
#endif
Page := CreateCustomPage(Page.ID, 'Custom Page 2', 'Custom Text 2');
CheckListBox:=TNewCheckListBox.Create(WizardForm);
with CheckListBox do begin
Parent:=Page.Surface;
Left:=ScaleX(0);
Top:=ScaleY(10);
Width:=ScaleX(413);
Height:=ScaleY(210);
AddCheckBox(ExpandConstant('Install Sofware'),'',0,False,True,False,True,Nil);
AddRadioButton(ExpandConstant('1'),'',1,True,True,Nil);
AddRadioButton(ExpandConstant('2'),'',1,False,True,Nil);
AddCheckBox(ExpandConstant('Install DLC'),'',0,False,True,False,True,Nil);
AddRadioButton(ExpandConstant('1'),'',1,True,True,Nil);
AddRadioButton(ExpandConstant('2'),'',1,False,True,Nil);
AddCheckBox(ExpandConstant('Install Inno Setup'),'',0,False,True,False,True,Nil);
AddRadioButton(ExpandConstant('1'),'',1,True,True,Nil);
AddRadioButton(ExpandConstant('2'),'',1,False,True,Nil);
AddCheckBox(ExpandConstant('Install Unicorn'),'',0,False,True,False,True,Nil);
AddRadioButton(ExpandConstant('1'),'',1,True,True,Nil);
AddRadioButton(ExpandConstant('2'),'',1,False,True,Nil);
end;
Page := CreateCustomPage(Page.ID, 'Custom Page 3', 'Custom Text 3');
Page := CreateCustomPage(Page.ID, 'Custom Page 4', 'Custom Text 4');
Page := CreateCustomPage(Page.ID, 'Custom Page 5', 'Custom Text 5');
Page := CreateCustomPage(Page.ID, 'Custom Page 6', 'Custom Text 6');
end;
procedure InitializeWizard();
begin
CreateCustomPages;
WizardForm.BeveledLabel.Caption := ' Hello World ';
end;
Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir:
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents)
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption;
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc)
end;
wpSelectComponents:
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WzardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir)
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint
end;
end;
End;
создать новую страницу, разместить на ней чекбоксы, радиопереключатели, как к ним прописать функции и процедуры