Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

Serega
04-11-2010, 00:28
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы (http://forum.oszone.net/showthread.php?p=1201499#post1201499).



Русская справка (http://sabbathblacklab.narod.ru/rus2/is5hlp.rar) в формате .hlp, к версии 5.1.8, автор перевода BagIra (http://forum.ru-board.com/profile.cgi?action=show&member=BagIra) | cкачать в .chm формате (http://ifolder.ru/20814819);


Inno Setup Extensions Knowledge Base (http://www.vincenzo.net/isxkb/index.php?title=Special:Allpages) - онлайн справочник, содержит ответы на многие вопросы | старая chm-версия (http://www.vincenzo.net/isxkb/images/5/57/Isxkbchm.zip);


Inno Setup Scripting 5.1 (http://rapidshare.com/files/35134896/iss_setup.exe.html) - руководство по расширенным возможностям Inno Setup от Kindly (http://forum.ru-board.com/profile.cgi?action=show&member=Kindly);


Коллекция скриптов (http://victor-dobrov.narod.ru/InnoSetupScripts.7z) | Сборник вопросов (http://victor-dobrov.narod.ru/InnoSetupFAQ_ru-board.chm);


Сборник скриптов (http://narod.ru/disk/7844921001/Inno%20Faq%201.4.chm.html) в формате .chm от Krinkels (http://www.forum.oszone.ru/member.php?userid=223950);




Бегущая строка (http://www.forum.oszone.ru/post-1071300-518.html) - бегущая строка на WizardForm, (ссылка на сообщение);
Эффект печатной машинки (http://www.forum.oszone.ru/post-1082174-553.html) - текст на WizardForm появляется по одной букве, (ссылка на сообщение);
Ultimate Test (http://www.forum.oszone.ru/post-1212059-48.html) - проверка системных требований для инсталлятора с чёрным фоном, (ссылка на сообщение);
Запрет установки в корень системного диска (http://www.forum.oszone.ru/post-1210003-46.html), (ссылка на сообщение);
Автовыбор диска установки (http://www.forum.oszone.ru/post-1217528-96.html) - определяет логические диски на компьютере и предлагает установить на первый логический диск не являющийся системным, (ссылка на сообщение);
Распаковка архивов FreeArc (http://www.forum.oszone.ru/post-1300871-729.html) - новая версия скриптов для распаковки архивов FreeArc, (ссылка на сообщение);
Стандартные папкам Windows (http://www.forum.oszone.ru/showpost.php?p=1218002&postcount=102) - пример скрипта, позволяющий получить путь к стандартным папкам Windows, (ссылка на сообщение);
Наложение изображений на стандартные кнопки (http://forum.oszone.net/post-1241045-224.html) - пример, показывающий как использовать свои изоброжения на кнопках, (ссылка на сообщение);
Картинка на страницах инсталлятора (http://www.forum.oszone.ru/post-1242285-250.html) - пример скрипта, показывающий как растянуть стандартную картинку на всю страницу, (ссылка на сообщение);
Выделение всех компонентов (http://forum.oszone.net/post-1276947-444.html) - пример показывает как выделенить или снять отметки со всех компонентов одной кнопкой, (ссылка на сообщение);
ExecAndWait.iss (http://forum.oszone.net/post-1325616-881.html) - скрипт, который позволяет запускать другие программы с ожиданием их завершения и при этом инсталлятор остаётся "живым", т.е. отвечает на действия пользователя, (ссылка на сообщение);
Need for Speed™ Undercover.iss v 2.2 (http://www.forum.oszone.ru/post-1409866-1784.html) - пример скрипта для игры Need for Speed+FreeArc, одним словом название говорит само за себя, (ссылка на сообщение);




ISTool (http://www.istool.org/) - неплохой редактор скриптов Inno Setup.
Последняя версия: 5.3.0.1 [29.09.2009] - Скачать (http://downloads.sourceforge.net/project/istool/istool-5.3.0.1.exe?use_mirror=sunet) | зеркало (http://sourceforge.net/settings/mirror_choices?projectname=istool&filename=istool-5.3.0.1.exe);


Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
Последняя версия: 1.0.3.1 [23.03.2008] - Скачать (http://www.freedownloadsplace.com/Inno-Script-Generator-Download-31392.htm) | зеркало (http://rghost.ru/4881192) | зеркало на русифицированную программу (http://ifolder.ru/21111525);
Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.


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


Inno Setup GameScript Generator (http://forum.csmania.ru/viewtopic.php?f=38&t=4688) - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;


ISSkin (http://isskin.codejock.com/) - Программа для создания и добавления в инсталлятор скинов. Инструкция (http://isskin.codejock.com/gettingstarted.asp).
Последняя версия: 3.0.0.0 [19.01.2010] - Скачать (http://isskin.codejock.com/downloads/ISSkinExample.zip);


InnoSetup Script Joiner (http://issjoiner.codeplex.com/) - Программа для объединения нескольких скриптов InnoSetup в один;


Converter (http://forum.oszone.net/post-1216149-86.html) - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
Последняя версия: 0.1.4 [13.03.2010] - Скачать (http://forum.oszone.net/attachment.php?attachmentid=41380&d=1268419710);


[hr]
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1 (http://forum.oszone.net/thread-60604.html)
Inno Setup [все вопросы] часть 2 (http://forum.oszone.net/thread-148703.html)

STRAYKER
08-11-2010, 18:41
Люди помогите мне нада чтобы картнка была только на первых двух страницах инсталятор (Она должна быть на весь инсталятор )


http://cs4560.vkontakte.ru/u63041931/114929891/x_6498b93f.jpg

вот пример но она на все страницы инсталятора !!!

shao
08-11-2010, 19:51
Люди помогите »

Да вы, уважаемый, не требуйте !
Тут все делают всё на добровольных началах.
Третий или четвёртый раз повторять один и тот же вопрос так настойчиво - это , как минимум, признак дурного тона.

Задали вопрос - и ждите. Если у кого-либо будет ответ на Ваш вопрос - обязательно ответят.

STRAYKER
08-11-2010, 21:24
shao,

извините но мне позарес нада сделать RePack игры :dont-know

R.i.m.s.k.y.
09-11-2010, 08:29
извините но мне позарес нада сделать RePack игры »
А похоже Вам позарез надо сделать картинку. Если нужно делать репак - то и вопросы были бы про репак, а не про картинку.

STRAYKER
09-11-2010, 19:09
R.i.m.s.k.y.,
Инсталятор и репак связаные !!!
Как говорят " Сначала книгу судят по обложке а потом о её содержымом "

Petruchodd
09-11-2010, 19:51
Доброго времени суток. Ребята может кто то мне помочь (буду оооочень признателен )как сделать инсталятору проверку на версию программы . В инсталяторе я задаю версию моего приложения (если я правильно понял)
AppVersion=1.55.5
После того как я изменил версию своего приложения, я изменил ее и в в этой записи( надеялся что там более менее автоматизировано всё ( в инно сетап имею ввиду))
Получается так, что я устанавливаю на "новую" версию - старую ( если пойти с другой стороны, с точки зрения багов) И конечное же тогда меняются файлы :(

Может кто то подсказать как сделать такое : Запустили инсталятор , указали папку, оно видит что там уже есть наша программа и проверяет версию. Если версия таже то сказать одно, а если версия новее чем та которую пытаемся установить - то предупредить об этом с правом выбора.

помогите пожалуйста

THE GUILTY GOD
10-11-2010, 12:11
Всем здрасте!
как сделать так что бы при нажатии на определённую кнопку появлялось окно с изображением.
и как отредактировать скин.
Зарание СПС!

R.i.m.s.k.y.
10-11-2010, 12:24
Всем здрасте!
как сделать так что бы при нажатии на определённую кнопку появлялось окно с изображением.
и как отредактировать скин. »Form Designer в шапке темы

nik1967
10-11-2010, 13:10
и как отредактировать скин »
Codejock Skin Builder тебе в помощь.

sergey3695
10-11-2010, 15:32
Кто знает помогите пожалуйста, как сделать так:
http://i053.radikal.ru/1011/63/462657e83abc.gif (http://www.radikal.ru)
Чтобы при нажатии менялась форма инстала?

R.i.m.s.k.y.
10-11-2010, 15:37
Оформление очень любят на форуме ru-board.

Imitri7
11-11-2010, 17:16
как исправить ошибку http://s001.youpic.su/pictures/1289412000/thumb_3644e020ddc4f2dbe1dffadd43a300c8.png (http://youpic.su/view.php?id=s001.youpic.su/pictures/1289412000/3644e020ddc4f2dbe1dffadd43a300c8.png) ?

вот код//************************************************ [Íà÷àëî - Íàëîæåíèå òåêñòóðû + öåíòðèðîâàíèå òåêñòà (êíîïêè)] ***************************************************//
const
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:=clFont //Öâåò òåêñòà
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
ButtonPanel[bidNext].Enabled := True
end;

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

procedure CurPageChanged1(CurPageID: Integer);
begin
UpdateButton(WizardForm.BackButton,bidBack)
UpdateButton(WizardForm.NextButton,bidNext)
UpdateButton(WizardForm.CancelButton,bidCancel)
ButtonLabel[bidBack].Left := (ButtonPanel[bidBack].Width / 2 - ButtonLabel[bidBack].Width / 2);
ButtonLabel[bidNext].Left := (ButtonPanel[bidNext].Width / 2 - ButtonLabel[bidNext].Width / 2);
ButtonLabel[bidCancel].Left := (ButtonPanel[bidCancel].Width / 2 - ButtonLabel[bidCancel].Width / 2);
ButtonLabel[bidDirBrowse].Left := (ButtonPanel[bidDirBrowse].Width / 2 - ButtonLabel[bidDirBrowse].Width / 2);
ButtonLabel[bidGroupBrowse].Left := (ButtonPanel[bidGroupBrowse].Width / 2 - ButtonLabel[bidGroupBrowse].Width / 2);
end;

procedure InitializeWizard1();
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)
end;
//************************************************ [Êîíåö - Íàëîæåíèå òåêñòóðû + öåíòðèðîâàíèå òåêñòà (êíîïêè)] ****************************************************//

//************************************************ [Íà÷àëî - Ñâîáîäíî ìåñòà íà äèñêå] ****************************************************//
var
NeedSize:Integer;
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel,FreeSpaceLabel: TLabel;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Äîñòóïíî ìåñòà íà äèñêå: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Äîñòóïíî ìåñòà íà äèñêå: '+ IntToStr(FreeMB)+ ' MB';
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled := False;
end else
begin
WizardForm.NextButton.Enabled := True;
ButtonLabel[bidNext].Enabled := True;
ButtonPanel[bidNext].Enabled := True;
end;
end;


procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Òðåáóåòñÿ ìåñòà íà äèñêå: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' ÃÁ' else
NeedSpaceLabel.Caption := 'Òðåáóåòñÿ ìåñòà íà äèñêå: '+ IntToStr(NeedSize)+ ' ÌÁ';
end;

procedure InitializeWizard2();
begin
NeedSize := 2048;

WizardForm.DiskSpaceLabel.Hide;

NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;

FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;

procedure CurPageChanged2(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;
end;

//************************************************ [Êîíåö - Ñâîáîäíî ìåñòà íà äèñêå] ****************************************************//
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;

если сделать NeedSize := 3072; то ошибку не выдает

THE GUILTY GOD
11-11-2010, 17:31
можно ли сделать так что бы при нажатии на определённую кнопочку показывалась картинка.
И можнали в на момент копирования файлов сделать так чтобы воспроизводилось видео, а прогресс бар опистить ниже

STRAYKER
11-11-2010, 18:30
помогите со скриптом
Проблема в том что он не создает папки в меню пуск и ярлыки хотя там все прописано
Проблемма возникает тогда когда добавляеш скрипт с расширениям картинки на весь инсталятор

; Script generated by the Ìàñòåð Inno Setup Script.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{B8A23CB6-D773-43C6-8D08-11ADDB1095D5}
AppName=My Program
AppVersion=1.5
;AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=C:\Users\Striker\Desktop
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
WizardImageFile=D:\1.bmp

[Code]
var
pnl: TPanel;

///////////////////////WelcomePage//////////////////////////////////////
procedure WelcomePage;
begin
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.WelcomeLabel1.AutoSize;
SetBounds(WizardForm.WelcomeLabel1.Left,WizardForm.WelcomeLabel1.Top,
WizardForm.WelcomeLabel1.Width,WizardForm.WelcomeLabel1.Height);
WordWrap:= WizardForm.WelcomeLabel1.WordWrap;
Caption:= WizardForm.WelcomeLabel1.Caption;
with Font do
begin
Color:= 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(WizardForm.WelcomeLabel2.Left,WizardForm.WelcomeLabel2.Top,
WizardForm.WelcomeLabel2.Width,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;
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 + 50,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:= 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;
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(WizardForm.RunList.Left+2),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(WizardForm.RunList.Left+20),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(WizardForm.FinishedHeadingLabel.Left,WizardForm.FinishedHeadingLabel.Top,
WizardForm.FinishedHeadingLabel.Width,WizardForm.FinishedHeadingLabel.Height);
WordWrap:= WizardForm.FinishedHeadingLabel.WordWrap;
Caption:= WizardForm.FinishedHeadingLabel.Caption;
with Font do
begin
Color:= 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(WizardForm.FinishedLabel.Left,WizardForm.FinishedLabel.Top,
WizardForm.FinishedLabel.Width,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
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;


[Files]
; Add the ISSkin DLL used for skinning Inno Setup installations.
Source: ISSkin.dll; DestDir: {app}; Flags: dontcopy

; Add the Visual Style resource contains resources used for skinning,
; you can also use Microsoft Visual Styles (*.msstyles) resources.
Source: skin.cjstyles; DestDir: {tmp}; Flags: dontcopy

[Code]
// Importing LoadSkin API from ISSkin.DLL
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

// Importing UnloadSkin API from ISSkin.DLL
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

// Importing ShowWindow Windows API from User32.DLL
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('skin.cjstyles');
LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
// Hide Window before unloading skin so user does not get
// a glimpse of an unskinned window before it is closed.
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;

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

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "D:\Programs\Setup\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent

[Files]
Source: "isgsg.dll"; DestDir: {tmp}; Flags: dontcopy nocompression
Source: "splash.png"; DestDir: {tmp}; Flags: dontcopy nocompression

[code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';

procedure InitializeWizard();
begin

WizardForm.PageNameLabel.Font.Color:=clgreen;
WizardForm.LicenseAcceptedRadio.Font.Color:=clwhite;
WizardForm.LicenseNotAcceptedRadio.Font.Color:=clwhite;
WizardForm.Font.Color:=clwhite;

ExtractTemporaryFile('splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
end;

THE GUILTY GOD
12-11-2010, 06:14
Помигите с расчётом времени.
Тема такая у меня после основной установки идет распаковка архивов из секции RUN, а время к этому моменту еже стоит на нолях, как сделать так что бы она ещё показывало сколько ещё будут распаковыватся, архивы.

STRAYKER
12-11-2010, 19:41
КАК создать такой инсталятор ???
http://bitbest.ru/files/2010_10_13_5810704001.jpg

serg aka lain
12-11-2010, 20:09
КАК создать такой инсталятор ??? »
Вот тут (http://rghost.ru/3233164) можно скачать.

з.ы. по вопросам создания рюшечек для инсталятора, лучше обращаться на ру-борде.

STRAYKER
13-11-2010, 21:16
Serega,

Помогите
Как сделать каринку на весь инстаялятор но только на первую старницу ???Помогите пожалуйста

jameszero
13-11-2010, 21:38
STRAYKER
Замечание.

При написании сообщений на форум используйте шрифт по умолчанию.




© OSzone.net 2001-2012