Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

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


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

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


Цитата Лександер:
Если не смеешся, то можно и их попробовать, текст почти сделал »
Ды нет, можно конечно, вот моя
поделка
Код: Выделить весь код
[Setup]
AppName=My Program 
AppVerName=My Program 
DefaultDirName={pf}\My Program 

[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl;

[CustomMessages]
HeaderLabelPage=Выберите тип установки
MyRadioCaption_1=Обычная установка
MyRadioCaption_2=Выборочная установка
PageTextHeader=На этой странице Вы можете выбрать тип установки, который для Вас наиболее удобен.
MyText_1=Установка будет произведена полностью в автоматическом режиме.%n(Подходит для не подготовленных пользователей)                           
MyText_2=Будет предложен выбор директории установки.%n(Для продвинутых пользователей)

[code]
function GetModuleHandle(lpModuleName: LongInt): LongInt;
 external 'GetModuleHandleA@kernel32.dll stdcall';
function ExtractIcon(hInst: LongInt; lpszExeFileName: AnsiString; nIconIndex: LongInt): LongInt;
 external 'ExtractIconA@shell32.dll stdcall';
function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth, 
       cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;
 external 'DrawIconEx@user32.dll stdcall';
function DestroyIcon(hIcon: LongInt): LongInt;
 external 'DestroyIcon@user32.dll stdcall';

const
   DI_NORMAL = 3;

var
  MyNewPage: TWizardPage;
  Rect: TRect;
  HIcon: LongInt;
  AIconFileName: String;
  MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton;

procedure GetInstTypePage();
begin
  MyNewPage := CreateCustomPage(wpWelcome,
    ExpandConstant('{cm:HeaderLabelPage}'), '');

  try
    // в конкретном примере из этого файла (C:\Windows\System32\shell32.dll) берём иконки, для пробного показа.
    // Можно использовать обычные .ico
    AIconFileName := ExpandConstant('{sys}\shell32.dll');
    //

    Rect.Left := 0;
    Rect.Top := 0;
    Rect.Right := 32;
    Rect.Bottom := 32;

    hIcon := ExtractIcon(GetModuleHandle(0), AIconFileName, 26);
    try
      with TBitmapImage.Create(WizardForm) do
      begin
        Left := ScaleX(15);
        Top := ScaleY(68);
        Width := 32;
        Height := 32;
        with Bitmap do
        begin
          Width := 32;
          Height := 32;
          Canvas.Brush.Color := clBtnFace;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
        end;
        Parent := MyNewPage.Surface;
      end;
     finally
     DestroyIcon(hIcon);
    end;

    hIcon := ExtractIcon(GetModuleHandle(0), AIconFileName, 19); 
    try
      with TBitmapImage.Create(WizardForm) do
      begin
        Left := ScaleX(15);                                                
        Top := ScaleY(138);
        Width := 32;
        Height := 32;
        with Bitmap do
        begin
          Width := 32;
          Height := 32;
          Canvas.Brush.Color := clBtnFace;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
        end;
        Parent := MyNewPage.Surface;
      end;
     finally
     DestroyIcon(hIcon);
    end;
  except
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Width := WizardForm.InnerNotebook.Width;
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:PageTextHeader}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_1 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_1 do
  begin
    Top := ScaleY(50);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_1}');
    Checked := True;
    Parent := MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Left := ScaleX(60);
    Top := ScaleY(68);
    Width := WizardForm.InnerNotebook.Width - ScaleX(60);
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:MyText_1}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_2 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_2 do
  begin
    Top := ScaleY(120);
    Width := ScaleX(150);   
    Caption := ExpandConstant('{cm:MyRadioCaption_2}');
    Parent := MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Left := ScaleX(60);
    Top := ScaleY(138);
    Width := WizardForm.InnerNotebook.Width - ScaleX(60);
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:MyText_2}');
    Parent := MyNewPage.Surface;
  end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID >= wpSelectDir) and (PageID < wpReady) and (MyRadioBtn_1.Checked) then
     Result := True;
end;

procedure InitializeWizard();
begin
  GetInstTypePage();
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:05, 26-12-2010 | #276