[code][Setup]
AppName=Моя программа
AppVersion=1.5
DefaultDirName={pf}\Моя программа
DirExistsWarning=no
AppendDefaultDirName=no
[CustomMessages]
CompName1=Компонент 1
CompName2=Компонент 2
CompSubtitlesLng=Язык субтитров
CompVoiceLng=Язык озвучки
CompRussian=Русский
CompEnglish=Английский
[Components]
Name: comp1; Description: "{cm:CompName1}";
Name: comp2; Description: "{cm:CompName2}";
Name: comp3; Description: "{cm:CompName1}";
Name: comp4; Description: "{cm:CompName2}";
Name: comp5; Description: "{cm:CompName1}";
Name: comp6; Description: "{cm:CompName2}";
[Files]
//===========================ПЕРВАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm1(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm1(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm1(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm1(5)
//===========================ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm2(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm2(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm2(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm2(5)
//===========================ТРЕТЬЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm3(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm3(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm3(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm3(5)
Код:

var
ComponentsPage1,ComponentsPage2,ComponentsPage3: TWizardPage;
SelectComponentsLabel1,SelectComponentsLabel2,SelectComponentsLabel3: TNewStaticText;
ComponentsList1,ComponentsList2,ComponentsList3: TNewCheckListBox;
procedure ComponentsForm1;
begin
ComponentsPage1 := CreateCustomPage(wpSelectComponents, 'ПЕРВАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc));
//========================================================================\\
SelectComponentsLabel1 := TNewStaticText.Create(WizardForm);
with SelectComponentsLabel1 do
begin
Parent := ComponentsPage1.Surface;
SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42));
AutoSize := False;
WordWrap := True;
Caption := SetupMessage(msgSelectComponentsLabel2);
end;
//========================================================================\\
ComponentsList1 := TNewCheckListBox.Create(WizardForm);
with ComponentsList1 do
begin
Parent := ComponentsPage1.Surface;
SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil); //0
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //2
AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil); //3
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //5
end;
end;
procedure ComponentsForm2;
begin
ComponentsPage2 := CreateCustomPage(ComponentsPage1.ID, 'ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc));
//========================================================================\\
SelectComponentsLabel2 := TNewStaticText.Create(WizardForm);
with SelectComponentsLabel2 do
begin
Parent := ComponentsPage2.Surface;
SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42));
AutoSize := False;
WordWrap := True;
Caption := SetupMessage(msgSelectComponentsLabel2);
end;
//========================================================================\\
ComponentsList2 := TNewCheckListBox.Create(WizardForm);
with ComponentsList2 do
begin
Parent := ComponentsPage2.Surface;
SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil); //0
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //2
AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil); //3
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //5
end;
end;
procedure ComponentsForm3;
begin
ComponentsPage3 := CreateCustomPage(ComponentsPage2.ID, 'ТРЕТЬЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc));
//========================================================================\\
SelectComponentsLabel3 := TNewStaticText.Create(WizardForm);
with SelectComponentsLabel3 do
begin
Parent := ComponentsPage3.Surface;
SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42));
AutoSize := False;
WordWrap := True;
Caption := SetupMessage(msgSelectComponentsLabel2);
end;
//========================================================================\\
ComponentsList3 := TNewCheckListBox.Create(WizardForm);
with ComponentsList3 do
begin
Parent := ComponentsPage3.Surface;
SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil); //0
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //2
AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil); //3
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //5
end;
end;
function IsComponentsForm1(CompIndex: Integer): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to ComponentsList1.ItemCount - 1 do
begin
if CompIndex <= (ComponentsList1.ItemCount - 1) then
Result := ComponentsList1.Checked[CompIndex];
end;
end;
//========================================================================\\
function IsComponentsForm2(CompIndex: Integer): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to ComponentsList2.ItemCount - 1 do
begin
if CompIndex <= (ComponentsList2.ItemCount - 1) then
Result := ComponentsList2.Checked[CompIndex];
end;
end;
//========================================================================\\
function IsComponentsForm3(CompIndex: Integer): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to ComponentsList3.ItemCount - 1 do
begin
if CompIndex <= (ComponentsList3.ItemCount - 1) then
Result := ComponentsList3.Checked[CompIndex];
end;
end;
procedure InitializeWizard();
begin
ComponentsForm1;
ComponentsForm2;
ComponentsForm3;
end;