Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


возможно сделать несколько страниц выбора компонентов? при этом с сохранением Components: в [Files], т.е. без Check: как в этом примере
Скрытый текст
[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;

это вариант для меня сложноват...

Отправлено: 21:30, 15-04-2015 | #491