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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 3]

Ветеран


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


Конфигурация

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Новый участник


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

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


R.i.m.s.k.y.
Большое спасибо. Я в этом деле новичок, голова идет кругом от всего этого.

Отправлено: 18:04, 14-09-2011 | #3081



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Dark_Delphin

Старожил


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

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


Всем добрый вечер!

У меня вот такая штука получается.
Все кнопке на стекле нормально смотрятся,



а вот эта кнопка плохо(.



Подскажите как поправить.
Заранее спасибо.

-------
✘ _420.pp_✘


Отправлено: 20:07, 14-09-2011 | #3082


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Roman_-82, да не за что, если хочешь сам начать - качни примеры в шапке, разбери что непонятно, там же переведенный хелп от инно
человека который сам делает, но не понимает, отличает от халявщика постановка вопроса

ntrx, я в оформлении нубс, но тот кто захочет тебе помочь - попросит скрипт, положи заранее

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:34, 14-09-2011 | #3083


Аватара для Rikill

Старожил


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

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


ntrx, добавь кнопку в прозрачную область. В библиотеке есть специальные для этого функции. С помощью них ты добавлял кнопку "Вперёд", "Назад".

-------
"Око за око приведёт к слепоте мира"- Ганди

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:43, 14-09-2011 | #3084

T3X T3X вне форума

Новый участник


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

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


Люди, помогите плиз
Есть 2 скрипта
скрипт1.iss
скрипт2.iss - button

Кручу-верчу, а в скрипт1 не могу добавить button'ы

Компилятор что в шапке не помогает...
Заранее благодарю.

Отправлено: 17:08, 15-09-2011 | #3085


Ветеран


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

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


Подскажите как сделать в исдоне чтобы был выбор компонентов именно куда указать где находятся файлы для распаковки?

Отправлено: 17:28, 15-09-2011 | #3086


Новый участник


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

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


Как сделать цветным прогресс установки и такой серебристый инстал и лого в углу

Отправлено: 18:13, 15-09-2011 | #3087


Аватара для No4noylis

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


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

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


insombia, читай справку!!!
читать дальше »

Пример 2 : распаковка архивов, учитывая выбранные компоненты.
Код: Выделить весь код
[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive;
Name: text\eng; Description: Английский; Flags: exclusive;
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive;
Name: voice\eng; Description: Английский; Flags: exclusive;

....

Comps1:=0; Comps2:=0; Comps3:=0;
TmpValue:=1;
if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue; //компонент 1
TmpValue:=TmpValue*2;
if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue; //компонент 2
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue; //компонент 3
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue; //компонент 4

....

ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
  repeat
    if not FileSearchInit(false) then break;
    if not ISArcExtract ( 0, 0, ExpandConstant('{src}\BasicData.arc'), ExpandConstant('{app}\'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 1, 0, ExpandConstant('{src}\rustext.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 2, 0, ExpandConstant('{src}\engtext.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 3, 0, ExpandConstant('{src}\rusvoice.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    if not ISArcExtract ( 4, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
    ISDoneError:=false;
  until true;
  ISDoneStop;
end;
в данном примере имеется 4 действующих компонента. Перед инициализацией бибилиотеки состояния чекбоксов компонентов загружаются в переменную Comps1.
Сначала при любом выборе компонентов распаковывается архив BasicData.arc, у которого нет к ним привязки (первый параметр равен 0);
далее уже в зависимости от выбранных пользователем чекбоксов будет распаковываться:
rustext.arc, если был выбран компонент 'text\rus';
engtext.arc, если был выбран компонент 'text\eng';
rusvoice.arc, если был выбран компонент 'voice\rus';
engvoice.arc, если был выбран компонент 'voice\eng';
Вне зависимости от выбора пользователя, прогрессбар автоматически подстраивается под выбранные компоненты, чтобы отображение было без равков и граничным состоянием было 100%. Это достигается тем, что после тестового прохода вся информация о времени выполнения каждого компонента сохраняется в файл records.inf и перед началом реальной установки уже известно какие компоненты не были выбраны и, соответственно, их время будет интерполироваться на все остальные операции, которые точно будут выполнены в процессе установки.

Kizekil,
читать дальше »

Для такого цвета инсталла и прогрессбара нужно добавлять скин, а как лого добавить вот:
Код: Выделить весь код
[Files]
Source: Button.bmp; Flags: dontcopy 

[_code]
procedure LogoOnClick(Sender: TObject);
var ResCode: Integer;
begin
ShellExec('', 'http://www.forum.ru-board.com', '' , '', SW_SHOW, ewNoWait, ResCode) ///////////// Адрес сайта////////////
end;

procedure InitializeWizard();
var
BtnPanel: TPanel;
BtnImage: TBitmapImage;
begin
ExtractTemporaryFile('Button.bmp')

BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
Left:=20
Top:=318
Width:=138
Height:=46
Cursor:=crHand
OnClick:=@logoOnClick
Parent:=WizardForm
end
BtnImage:=TBitmapImage.Create(WizardForm)
with BtnImage do begin
AutoSize:=True;
Enabled:=False;
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Button.bmp')
Parent:=BtnPanel
end
end;

T3X, Вроде так:
читать дальше »

Код: Выделить весь код
[Setup]
AppName=RAGE.su patch
AppVerName=RAGE.su patch v 0.1b
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
WizardImageFile=D:\Desktop\4.bmp
SetupIconFile=D:\Games\Lineage II-Freya\icon.ico


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

[Files]
Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
Source: button.bmp; DestDir: {tmp}; Flags: dontcopy

[Run]
Filename: {app}\MyProg.exe; Description: ????????? Lineage II Freya?; Flags: postinstall nowait skipifsilent

[_Code]
const
Color = clblack;
ButtonWidth = 80;    //Указываем размер кнопок
ButtonHeight = 23;

bidBack = 0;
bidNext = 1;
bidCancel = 2;
bidDirBrowse = 3;
bidGroupBrowse = 4;

var
  ButtonPanel: array [0..4] of TPanel;
  ButtonImage: array [0..4] of TBitmapImage;
  ButtonLabel: array [0..4] of TLabel;

procedure ButtonLabelClick(Sender: TObject);
var
  Button: TButton;
begin
  ButtonImage[TLabel(Sender).Tag].Left:=0
  case TLabel(Sender).Tag of
    bidBack: Button:=WizardForm.BackButton
    bidNext: Button:=WizardForm.NextButton
    bidCancel: Button:=WizardForm.CancelButton
    bidDirBrowse: Button:=WizardForm.DirBrowseButton
    bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
  else
    Exit
  end
  Button.OnClick(Button)
end;

procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if ButtonLabel[TLabel(Sender).Tag].Enabled then
     ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth
end;

procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ButtonImage[TLabel(Sender).Tag].Left:=0
end;

procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
  Image: TBitmapImage;
  Panel: TPanel;
  Labl: TLabel;

begin
  Panel:=TPanel.Create(WizardForm)
  Panel.Left:=AButton.Left
  Panel.Top:=AButton.Top
  Panel.Width:=AButton.Width
  Panel.Height:=AButton.Height
  Panel.Tag:=AButtonIndex
  Panel.Parent:=AButton.Parent
  ButtonPanel[AButtonIndex]:=Panel

  Image:=TBitmapImage.Create(WizardForm)    //Рисунок который ложится на кнопку
  Image.Width:=160                          //Обязательно прописать оригинальный размер рисунка
  Image.Height:=23
  Image.Enabled:=False
  Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'))
  Image.Parent:=Panel
  ButtonImage[AButtonIndex]:=Image

  with TLabel.Create(WizardForm) do begin
    Tag:=AButtonIndex
    Parent:=Panel
    Width:=Panel.Width
    Height:=Panel.Height
    Transparent:=True
    OnClick:=@ButtonLabelClick
    OnDblClick:=@ButtonLabelClick
    OnMouseDown:=@ButtonLabelMouseDown
    OnMouseUp:=@ButtonLabelMouseUp
  end

  Labl:=TLabel.Create(WizardForm)        //Текст кнопок
  Labl.Left:=23                          //Указываем положение текста
  Labl.Top:=5
  Labl.Autosize:=True
  Labl.Alignment:=taCenter
  Labl.Tag:=AButtonIndex
  Labl.Transparent:=True
  Labl.Font.Color:=clWhite               //Цвет текста
  Labl.Caption:=AButton.Caption
  Labl.OnClick:=@ButtonLabelClick
  Labl.OnDblClick:=@ButtonLabelClick
  Labl.OnMouseDown:=@ButtonLabelMouseDown
  Labl.OnMouseUp:=@ButtonLabelMouseUp
  Labl.Parent:=Panel
  ButtonLabel[AButtonIndex]:=Labl
end;

procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
  ButtonLabel[AButtonIndex].Caption:=AButton.Caption
  ButtonPanel[AButtonIndex].Visible:=AButton.Visible
  ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled
end;

procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled:=True
end;

procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled:=False
end;

procedure InitializeWizard();
begin
WizardForm.BackButton.Width:=ButtonWidth
WizardForm.BackButton.Height:=ButtonHeight

WizardForm.NextButton.Width:=ButtonWidth
WizardForm.NextButton.Height:=ButtonHeight

WizardForm.CancelButton.Width:=ButtonWidth
WizardForm.CancelButton.Height:=ButtonHeight

WizardForm.DirBrowseButton.Left:=337
WizardForm.DirBrowseButton.Width:=ButtonWidth
WizardForm.DirBrowseButton.Height:=ButtonHeight

WizardForm.GroupBrowseButton.Left:=337
WizardForm.GroupBrowseButton.Width:=ButtonWidth
WizardForm.GroupBrowseButton.Height:=ButtonHeight

WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick

WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick

ExtractTemporaryFile('button.bmp')
LoadButtonImage(WizardForm.BackButton,bidBack)
LoadButtonImage(WizardForm.NextButton,bidNext)
LoadButtonImage(WizardForm.CancelButton,bidCancel)
LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse)
LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse)


WizardForm.Font.Color:=clWhite;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=Color;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
WizardForm.PageNameLabel.Font.Color:=clWhite;
WizardForm.LicenseAcceptedRadio.Font.Color:= clWhite;
WizardForm.LicenseNotAcceptedRadio.Font.Color:= clWhite;
end;

var
  pnl: TPanel;

///////////////////////WelcomePage//////////////////////////////////////
procedure WelcomePage;
begin
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.WelcomeLabel1.AutoSize;
      SetBounds(16,WizardForm.WelcomeLabel1.Top,
                464,WizardForm.WelcomeLabel1.Height);
      WordWrap:= WizardForm.WelcomeLabel1.WordWrap;
      Caption:= WizardForm.WelcomeLabel1.Caption;
      with Font do
        begin
          Color:= clWhite;//WizardForm.WelcomeLabel1.Font.Color;
          Style:= WizardForm.WelcomeLabel1.Font.Style;
          Name:= WizardForm.WelcomeLabel1.Font.Name;
          Size:= WizardForm.WelcomeLabel1.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.WelcomeLabel2.AutoSize;
      SetBounds(16,WizardForm.WelcomeLabel2.Top,
                464,WizardForm.WelcomeLabel2.Height);
      WordWrap:= WizardForm.WelcomeLabel2.WordWrap;
      Caption:= WizardForm.WelcomeLabel2.Caption;
      with Font do
        begin
          Color:= WizardForm.WelcomeLabel2.Font.Color;
          Style:= WizardForm.WelcomeLabel2.Font.Style;
          Name:= WizardForm.WelcomeLabel2.Font.Name;
          Size:= WizardForm.WelcomeLabel2.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////SelectDirPage//////////////////////////////////////
procedure SelectDirPage;
begin
  with WizardForm do
    begin
      with DirEdit do
        begin
          Left:= 40;
          Top:= 137;
          Parent:= pnl;
        end;
      with DirBrowseButton do
        begin
          Left:= WizardForm.DirEdit.Left + WizardForm.DirEdit.Width + 10;
          Top:= WizardForm.DirEdit.Top - 1;
          Parent:= pnl;
        end;
      with SelectDirBitmapImage do
        begin
          Left:= WizardForm.DirEdit.Left;
          Top:= WizardForm.DirEdit.Top - 62;
          Visible:= false;
          Stretch:= true;
          Parent:= pnl;
        end;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.SelectDirBrowseLabel.AutoSize;
      SetBounds(WizardForm.DirEdit.Left,WizardForm.DirEdit.Top - 30,
                WizardForm.SelectDirBrowseLabel.Width, WizardForm.SelectDirBrowseLabel.Height);
      WordWrap:= WizardForm.SelectDirBrowseLabel.WordWrap;
      Caption:= WizardForm.SelectDirBrowseLabel.Caption;
      with Font do
        begin
          Color:= WizardForm.SelectDirBrowseLabel.Font.Color;
          Style:= WizardForm.SelectDirBrowseLabel.Font.Style;
          Name:= WizardForm.SelectDirBrowseLabel.Font.Name;
          Size:= WizardForm.SelectDirBrowseLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.SelectDirLabel.AutoSize;
      SetBounds(WizardForm.SelectDirBitmapImage.Left,WizardForm.SelectDirBitmapImage.Top + 10,
                WizardForm.SelectDirLabel.Width,WizardForm.SelectDirLabel.Height);
      WordWrap:= WizardForm.SelectDirLabel.WordWrap;
      Caption:= WizardForm.SelectDirLabel.Caption;
      with Font do
        begin
          Color:= WizardForm.SelectDirLabel.Font.Color;
          Style:= WizardForm.SelectDirLabel.Font.Style;
          Name:= WizardForm.SelectDirLabel.Font.Name;
          Size:= WizardForm.SelectDirLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.DiskSpaceLabel.AutoSize;
      SetBounds(WizardForm.DirEdit.Left,WizardForm.Bevel.Top - 25,
                WizardForm.DiskSpaceLabel.Width,WizardForm.DiskSpaceLabel.Height);
      WordWrap:= WizardForm.DiskSpaceLabel.WordWrap;
      Caption:= WizardForm.DiskSpaceLabel.Caption;
      with Font do
        begin
          Color:= WizardForm.DiskSpaceLabel.Font.Color;
          Style:= WizardForm.DiskSpaceLabel.Font.Style;
          Name:= WizardForm.DiskSpaceLabel.Font.Name;
          Size:= WizardForm.DiskSpaceLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////ReadyPage//////////////////////////////////////
procedure ReadyPage;
var
  ready_str: string;
begin
  ready_str:= WizardForm.ReadyMemo.Text;
  with TLabel.Create(pnl) do
    begin
      SetBounds(45,115,WizardForm.ReadyMemo.Width, WizardForm.ReadyMemo.Height);
      Caption:= ready_str;
      with Font do
        begin
          Color:= WizardForm.ReadyLabel.Font.Color;
          Style:= WizardForm.ReadyLabel.Font.Style;
          Name:= WizardForm.ReadyLabel.Font.Name;
          Size:= WizardForm.ReadyLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  with TBevel.Create(WizardForm) do
    begin
      SetBounds(40,110, WizardForm.ReadyMemo.Width, WizardForm.ReadyMemo.Height);
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.ReadyLabel.AutoSize;
      SetBounds(40,70, WizardForm.ReadyLabel.Width, WizardForm.ReadyLabel.Height);
      WordWrap:= WizardForm.ReadyLabel.WordWrap;
      Caption:= WizardForm.ReadyLabel.Caption;
      with Font do
        begin
          Color:= clWhite;
          Style:= WizardForm.ReadyLabel.Font.Style;
          Name:= WizardForm.ReadyLabel.Font.Name;
          Size:= WizardForm.ReadyLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////InstallingPage//////////////////////////////////////
procedure InstallingPage;
begin
  with WizardForm.ProgressGauge do
    begin
      Left:= 40;
      Top:= 115;
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.FilenameLabel.AutoSize;
      SetBounds(WizardForm.ProgressGauge.Left,WizardForm.ProgressGauge.Top-20,
                WizardForm.FilenameLabel.Width,WizardForm.FilenameLabel.Height);
      WordWrap:= WizardForm.FilenameLabel.WordWrap;
      Caption:= WizardForm.FilenameLabel.Caption;
      with Font do
        begin
          Color:= WizardForm.FilenameLabel.Font.Color;
          Style:= WizardForm.FilenameLabel.Font.Style;
          Name:= WizardForm.FilenameLabel.Font.Name;
          Size:= WizardForm.FilenameLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.StatusLabel.AutoSize;
      SetBounds(WizardForm.StatusLabel.Left,WizardForm.StatusLabel.Top,
                WizardForm.StatusLabel.Width,WizardForm.StatusLabel.Height);
      WordWrap:= WizardForm.StatusLabel.WordWrap;
      Caption:= WizardForm.StatusLabel.Caption;
      with Font do
        begin
          Color:= WizardForm.StatusLabel.Font.Color;
          Style:= WizardForm.StatusLabel.Font.Style;
          Name:= WizardForm.StatusLabel.Font.Name;
          Size:= WizardForm.StatusLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////FinishedPage//////////////////////////////////////
var
  CheckBox: array of TNewCheckBox;

procedure CheckBoxClick(Sender: TObject);
begin
  if TNewCheckBox(Sender).Checked then
    WizardForm.RunList.Checked[TNewCheckBox(Sender).Tag]:= True
  else WizardForm.RunList.Checked[TNewCheckBox(Sender).Tag]:= False;
end;

procedure LabelClick(Sender: TObject);
begin
  if CheckBox[TLabel(Sender).Tag].Checked then
    begin
      WizardForm.RunList.Checked[TLabel(Sender).Tag]:= False;
      CheckBox[TLabel(Sender).Tag].Checked:= False;
    end
  else
    begin
      WizardForm.RunList.Checked[TLabel(Sender).Tag]:= True;
      CheckBox[TLabel(Sender).Tag].Checked:= True;
    end;
end;

procedure HideRunList(Control: TWinControl);
var
  i, t: Integer;
  str: string;
begin
  if WizardForm.RunList.Items.Count > 0 then
    begin
      WizardForm.RunList.Hide;
      SetArrayLength(CheckBox, SizeOf(WizardForm.RunList.Items.Count));
      for i:= 0 to WizardForm.RunList.Items.Count-1 do
        begin
          CheckBox[i]:= TNewCheckBox.Create(Control);
          with CheckBox[i] do
            begin
              SetBounds(ScaleX(18),ScaleY(WizardForm.RunList.Top+2+t),14,14);
              Tag:= i;
              Checked:= WizardForm.RunList.Checked[i];
              Caption:= WizardForm.RunList.Items.Strings[i];
              OnClick:= @CheckBoxClick;
              Color:= clWhite;
              Parent:= Control;
            end;
          str:= WizardForm.RunList.Items.Strings[i];
          with TLabel.Create(WizardForm) do
            begin
              SetBounds(ScaleX(36),ScaleY(WizardForm.RunList.Top+2+t),
                        WizardForm.RunList.Width,14);
              Caption:= str;
              Tag:= i;
              OnClick:= @LabelClick;
              Transparent:= True;
              Parent:= Control;
            end;
          t:= t + 20;
        end;
    end;
end;

procedure FinishedPage;
begin
  HideRunList(pnl);
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.FinishedHeadingLabel.AutoSize;
      SetBounds(20,WizardForm.FinishedHeadingLabel.Top,
                464,WizardForm.FinishedHeadingLabel.Height);
      WordWrap:= WizardForm.FinishedHeadingLabel.WordWrap;
      Caption:= WizardForm.FinishedHeadingLabel.Caption;
      with Font do
        begin
          Color:= clwhite;//WizardForm.FinishedHeadingLabel.Font.Color;
          Style:= WizardForm.FinishedHeadingLabel.Font.Style;
          Name:= WizardForm.FinishedHeadingLabel.Font.Name;
          Size:= WizardForm.FinishedHeadingLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  with TLabel.Create(pnl) do
    begin
      AutoSize:= WizardForm.FinishedLabel.AutoSize;
      SetBounds(16,WizardForm.FinishedLabel.Top,
                464,WizardForm.FinishedLabel.Height);
      WordWrap:= WizardForm.FinishedLabel.WordWrap;
      Caption:= WizardForm.FinishedLabel.Caption;
      with Font do
        begin
          Color:= WizardForm.FinishedLabel.Font.Color;
          Style:= WizardForm.FinishedLabel.Font.Style;
          Name:= WizardForm.FinishedLabel.Font.Name;
          Size:= WizardForm.FinishedLabel.Font.Size;
        end;
      Transparent:= True;
      Parent:= pnl;
    end;
  pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

procedure CurPageChanged(CurPageID: Integer);
begin
UpdateButton(WizardForm.BackButton,bidBack)
UpdateButton(WizardForm.NextButton,bidNext)
UpdateButton(WizardForm.CancelButton,bidCancel)
  
  pnl:= TPanel.Create(WizardForm);
  with pnl do
    begin
      Align:= alClient;
      Parent:= WizardForm;
    end;
  with WizardForm do
    begin
      with WizardBitmapImage do
        begin
          Align:= alClient;
          Stretch:= True;
          Parent:= pnl;
        end;
      NextButton.Parent:= pnl;
      CancelButton.Parent:= pnl;
      BackButton.Parent:= pnl;
      //Bevel.Parent:= pnl;
      pnl.Repaint;
    end;

  if (CurPageID > wpWelcome) and (CurPageID < wpFinished) then
    begin
      //WizardForm.Bevel1.Parent:= pnl;
      with TLabel.Create(pnl) do
        begin
          AutoSize:= WizardForm.PageNameLabel.AutoSize;
          SetBounds(WizardForm.PageNameLabel.Left,WizardForm.PageNameLabel.Top,
                    WizardForm.PageNameLabel.Width,WizardForm.PageNameLabel.Height);
          Caption:= WizardForm.PageNameLabel.Caption;
          with Font do
            begin
              Color:= WizardForm.PageNameLabel.Font.Color;
              Style:= WizardForm.PageNameLabel.Font.Style;
              Name:= WizardForm.PageNameLabel.Font.Name;
              Size:= WizardForm.PageNameLabel.Font.Size;
            end;
          Transparent:= True;
          Parent:= pnl;
        end;
      with TLabel.Create(pnl) do
        begin
          AutoSize:= WizardForm.PageDescriptionLabel.AutoSize;
          SetBounds(WizardForm.PageDescriptionLabel.Left,WizardForm.PageDescriptionLabel.Top,
                    WizardForm.PageDescriptionLabel.Width,WizardForm.PageDescriptionLabel.Height);
          Caption:= WizardForm.PageDescriptionLabel.Caption;
          with Font do
            begin
              Color:= WizardForm.PageDescriptionLabel.Font.Color;
              Style:= WizardForm.PageDescriptionLabel.Font.Style;
              Name:= WizardForm.PageDescriptionLabel.Font.Name;
              Size:= WizardForm.PageDescriptionLabel.Font.Size;
            end;
          Transparent:= True;
          Parent:= pnl;
        end;
      pnl.Repaint;
    end;

  if CurPageID = wpWelcome then WelcomePage;
  if CurPageID = wpSelectDir then SelectDirPage;
  if CurPageID = wpReady then ReadyPage;
  if CurPageID = wpInstalling then InstallingPage;
  if CurPageID = wpFinished then FinishedPage;
end;

-------
Нет ничего невозможного...


Последний раз редактировалось No4noylis, 15-09-2011 в 19:42.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:19, 15-09-2011 | #3088


Ветеран


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

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


No4noylis оо спасибо а то я не знал куда паять компоненты

Отправлено: 19:39, 15-09-2011 | #3089

T3X T3X вне форума

Новый участник


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

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


No4noylis, спасибо но не работает)
тот же результат что и у меня... скрипт запустился, а кнопки стандартные.

Последний раз редактировалось T3X, 15-09-2011 в 20:16.


Отправлено: 19:50, 15-09-2011 | #3090



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход