Temyraz@fb,
думаю проще всего так
читать дальше »
Код:

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then
begin
if CheckBoxA.Checked = true then
begin
WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_A');
end;
if CheckBoxB.Checked = true then
begin
WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_B');
end;
end;
end;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
самодостаточный пример
читать дальше »
Код:

[Setup]
AppName=Setup
AppVerName=Setup
DefaultDirName={pf}\Setup
OutputDir=.
[ code]
var
CheckBoxA: TNewCheckBox;
CheckBoxB: TNewCheckBox;
function Run_A: Boolean; begin Result:=CheckBoxA.Checked; end;
function Run_B: Boolean; begin Result:=CheckBoxB.Checked; end;
procedure InitializeWizard;
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
{ CheckBoxA }
CheckBoxA := TNewCheckBox.Create(WizardForm);
with CheckBoxA do
begin
Name := 'CheckBoxA';
Parent := WizardForm.WelcomePage;
Left := ScaleX(216);
Top := ScaleY(176);
Width := ScaleX(97);
Height := ScaleY(17);
Caption := 'вариант 1';
end;
{ CheckBoxB }
CheckBoxB := TNewCheckBox.Create(WizardForm);
with CheckBoxB do
begin
Name := 'CheckBoxB';
Parent := WizardForm.WelcomePage;
Left := ScaleX(216);
Top := ScaleY(208);
Width := ScaleX(97);
Height := ScaleY(17);
Caption := 'Вариант 2';
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then
begin
if CheckBoxA.Checked = true then
begin
WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_A');
end;
if CheckBoxB.Checked = true then
begin
WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_B');
end;
end;
end;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
(только что заметил, что страница вставлена)
если своя страница, то
заместо wpSelectDir поставь DataDirPage.ID
а вместо WizardForm.DirEdit название своего эдита
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
а если у пользователя нет диска/партиции D ?
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,
R.i.m.s.k.y.,
у него всё привязано к проверке ключей в реестре
если есть/нет ключа, то отмечен один из 2-х невидимых для пользователя чекбоксов,
а в зависимости какой отмечен, то определённые действия в коде. (CurPageChanged, NextButtonClick)
через реестр зависит наличие компонетов, те проще всего по возможности всё привязывать к 2-м чекбоксам *(CheckBoxA; CheckBoxB)
Цитата R.i.m.s.k.y.:
тк страница компонентов идет после выбора директории »
|
есть пример смены страниц местами в
...\Inno Setup 5\Scripts\Dobrov\SwapDirComponents.iss
читать дальше »
Код:

[Setup]
AppName=My program
AppVerName=My program 1.5
DefaultDirName={pf}\My program
DisableDirPage=false
;DisableDirPage=true
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Components]
Name: WB; Description: 'Мой компьютер' - Настройки; ExtraDiskSpaceRequired: 1048576
[ Code]
function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;
Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir: if WizardForm.Tag = 1 then
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents)
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption; // запомнить SetupMessage(msgSelectDirDesc)
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc)
end;
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WizardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir)
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint // иначе вместо названия программы [name]
end;
end;
End;
Procedure InitializeWizard;
Begin
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage
End;
только если у тебя скажем проверка на странице выбора директории, то при использовании этого примера
эту проверку придётся делать на странице компонентов.