Johny777
Цитата Johny777:
его нельзя переименовывать так просто тк путь к экзешнику лежит в реестре и по нему, пути, вызывается удаление »
|
По мне так зачем это вообще нужно делать. Сразу же при повторной установке рядом создаётся файл unins000.exe Тут типа нужно делать проверку об установлееной программе или ещё что..., а так, никакой эстетики

Мысли в слух: Кому придёт в голову сразу же повторно устанавливать прогу...
EvilAlex
Цитата EvilAlex:
А как сделать так чтобы боттоны занли что выбирает пользователь ? надо приписывать код или это автоматически ? »
|
Радиобаттонами я не пользуюсь...
Вот пример проверки чекбоксов:
читать дальше »
Код:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.
[Files]
Source: 1.zip; DestDir: {app}\File1.exe; Check: NewCheckBox1Result;
Source: 2.zip; DestDir: {app}\File2.exe; Check: NewCheckBox2Result;
[ Code]
var
NewCheckBox1: TNewCheckBox;
NewCheckBox2: TNewCheckBox;
function NewCheckBox1Result: boolean;
begin
Result:=NewCheckBox1.Checked;
end;
function NewCheckBox2Result: boolean;
begin
Result:=NewCheckBox2.Checked;
end;
procedure NewCheckBox1Click(Sender: TObject);
begin
if NewCheckBox1.Checked then begin
NewCheckBox2.Checked:= false;
NewCheckBox2.Enabled:= false;
end
else if not NewCheckBox1.Checked then begin
NewCheckBox2.Enabled:= True;
end;
end;
procedure NewCheckBox2Click(Sender: TObject);
begin
if NewCheckBox2.Checked then begin
NewCheckBox1.Checked:= false;
NewCheckBox1.Enabled:= false;
end
else if not NewCheckBox2.Checked then begin
NewCheckBox1.Enabled:= True;
end;
end;
procedure RedesignWizardForm;
begin
NewCheckBox1 := TNewCheckBox.Create(WizardForm);
with NewCheckBox1 do
begin
Name := 'NewCheckBox1';
Parent := WizardForm.WelcomePage;
Left := ScaleX(208);
Top := ScaleY(208);
Width := ScaleX(97);
Height := ScaleY(17);
OnClick := @NewCheckBox1Click;
end;
NewCheckBox2 := TNewCheckBox.Create(WizardForm);
with NewCheckBox2 do
begin
Name := 'NewCheckBox2';
Parent := WizardForm.WelcomePage;
Left := ScaleX(208);
Top := ScaleY(232);
Width := ScaleX(97);
Height := ScaleY(17);
OnClick := @NewCheckBox2Click;
end;
NewCheckBox1.TabOrder := 2;
NewCheckBox2.TabOrder := 3;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
end;
Вот также пример из Help-а, чекбоксы работают как радиобаттоны:
читать дальше »
Код:

[Setup]
AppName=My Program
AppVerName=My Program v 1.7
DefaultDirName={pf}\My Program
OutputDir=.
[ Code]
var
Check: array [0..2] of TCheckBox;
procedure Check0(Sender: TObject);
begin
if Check[0].Checked then
begin
Check[1].Checked := False;
Check[2].Checked := False;
end;
if (Check[0].Checked = False) and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[0].Checked := True;
end;
procedure Check1(Sender: TObject);
begin
if Check[1].Checked then
begin
Check[0].Checked := False;
Check[2].Checked := False;
end;
if (Check[0].Checked = False) and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[1].Checked := True;
end;
procedure Check2(Sender: TObject);
begin
if Check[2].Checked then
begin
Check[0].Checked := False;
Check[1].Checked := False;
end;
if (Check[0].Checked = False) and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[2].Checked := True;
end;
procedure InitializeWizard();
begin
Check[0] := TCheckBox.Create(WizardForm);
with Check[0] do
begin
Parent := WizardForm.SelectDirPage;
Checked := True;
Top := ScaleY(100);
OnClick := @Check0;
Caption := 'Чекбокс №1';
end;
Check[1] := TCheckBox.Create(WizardForm);
with Check[1] do
begin
Parent := WizardForm.SelectDirPage;
Top := ScaleY(120);
OnClick := @Check1;
Caption := 'Чекбокс №2';
end;
Check[2] := TCheckBox.Create(WizardForm);
with Check[2] do
begin
Parent := WizardForm.SelectDirPage;
Top := ScaleY(140);
OnClick := @Check2;
Caption := 'Чекбокс №3';
end;
end;