Imitri7,
У тебя чекбокс расположен на WizardForm.InstallingPage;, а в примере на WizardForm;. Чтобы у тебя работало, нужно так:
читать дальше »
Код:

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=.
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: {sys}\*.dll; DestDir: {app}; Flags: external deleteafterinstall;
[_code]
function GetSystemMetrics(nIndex: Integer): Integer;
external 'GetSystemMetrics@user32.dll stdcall';
var
MyCheck: TCheckBox;
MyCheckLabel: TLabel;
procedure MyCheckOnClick(Sender: TObject);
begin
if MyCheck.Checked = False then
MyCheck.Checked:= True else
MyCheck.Checked:= False;
end;
procedure StandartForm();
begin
with WizardForm do
begin
ClientWidth := ScaleX(497);
ClientHeight := ScaleY(360);
Center;
Bevel.Show;
Bevel1.Show;
MainPanel.Show;
with InnerNotebook do
begin
Left := ScaleX(40);
Top := ScaleY(72);
Width := ScaleX(417);
end;
with StatusLabel do
Width := ScaleX(417);
with FileNameLabel do
begin
ScaleY(16);
Width := ScaleX(417);
end;
with ProgressGauge do
begin
Top := ScaleY(42);
Width := ScaleX(417);
end;
with CancelButton do
begin
Left := ScaleX(412);
Top := ScaleY(327);
end;
end;
with MyCheck do
Top := ScaleY(208);
with MyCheckLabel do begin
Top := ScaleY(209);
Left := ScaleX(20);
end;
end;
procedure MyNewForm();
begin
with WizardForm do
begin
ClientWidth := ScaleX(395);
ClientHeight := ScaleY(120);
Left := GetSystemMetrics(16) - ClientWidth - ScaleX(8);
Top := GetSystemMetrics(17) - ClientHeight - ScaleY(8);
Bevel.Hide;
Bevel1.Hide;
MainPanel.Hide;
with InnerNotebook do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := WizardForm.ClientWidth - ScaleX(20);
end;
with StatusLabel do
Width := InnerNotebook.Width;
with FileNameLabel do
begin
Top := ScaleY(20);
Width := InnerNotebook.Width;
end;
with ProgressGauge do
begin
Top := ScaleY(40);
Width := InnerNotebook.Width;
end;
with CancelButton do
begin
Left := WizardForm.ClientWidth div 2 - CancelButton.Width div 2;
Top := WizardForm.ClientHeight - CancelButton.Height - ScaleY(10);
BringToFront;
end;
end;
with MyCheck do
Top := WizardForm.CancelButton.Top -7;
with MyCheckLabel do begin
Top := WizardForm.CancelButton.Top -6;
Left := ScaleX(20);
end;
end;
procedure GetWizardForm(Sender: TObject);
begin
if MyCheck.Checked then
MyNewForm()
else
StandartForm();
end;
procedure InitializeWizard();
begin
MyCheck := TCheckBox.Create(WizardForm);
with MyCheck do
begin
Top := ScaleY(208);
Width := ScaleX(15);
OnClick := @GetWizardForm;
Parent := WizardForm.InstallingPage;
end;
MyCheckLabel := TLabel.Create(WizardForm);
with MyCheckLabel do begin
AutoSize:=False;
Left := ScaleX(20);
Top := ScaleY(209);
Width := ScaleX(150);
Transparent:=True;
//Font.Name:= 'Tahoma'
//Font.Size:= 8;
Font.Color:=clRed;
Caption := 'Компактный размер';
Parent:= WizardForm.InstallingPage;
OnClick:= @MyCheckOnClick;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
MyCheck.Checked := False;
end;