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

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

Аватара для nik1967

Старожил


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

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


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;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:00, 13-12-2010 | #102