Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: Aion13
Дата сообщения: 12.12.2008 18:20
htuos

Цитата:
у тебя TasksList закрывает твой Label
либо уменьшай высоту TasksList - WizardForm.TasksList.Height:= . . .
либо опускай ниже свой Label. в примере Top:= . . .


Спасиб, помогло! (:


Цитата:
И ещё: как убрать сообщение, выскакивающее при выборе пути установки: "Папка <название> уже существует. Всё равно продолжить установку?"


Посмотри пожалуйста, очень нужно.
Буквально теперь только этого не хватает для полного как говорится счастья. Ну ещё и вот этого пункта 4.


Автор: htuos
Дата сообщения: 12.12.2008 18:25
Aion13

Цитата:
Попробуй создать инсталл вот с таким кодом: Подробнее...

Вот по такому принципу: Подробнее...

И скажи как это дело исправить пожалуйста...

наверное как-то [more=так]procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
basePath:= ExpandConstant('{app}');
srcFile:= ExpandConstant(CurrentFileName);
shortPath:= srcFile;
StringChangeEx(shortPath, basePath, '', True);
destFile:= ExpandConstant('{app}\Install_DM\Backup') + shortPath;
if FileExists(srcFile) then begin
ForceDirectories(ExtractFilePath(destFile));
MoveFile(PChar(srcFile), PChar(destFile));
end;
end;[/more] если я правильно понял проблему

Добавлено:

Цитата:

Цитата:
И ещё: как убрать сообщение, выскакивающее при выборе пути установки: "Папка <название> уже существует. Всё равно продолжить установку?"


Посмотри пожалуйста, очень нужно.

я же написал, что не знаю как это сделать. если можно, то в хэлпе должно быть написано. учимся читать
Автор: Aion13
Дата сообщения: 12.12.2008 18:48
htuos
Благодарствую! Помогло! Это к вопросу о бекапе.

Ну а на счёт того чтобы в мануалах по этому почитать, хмм...пороюсь...но врятли найду....
Так что если найдёшь....даш знать тогда? ок?
Автор: ExpeditorR
Дата сообщения: 12.12.2008 18:53
clemenco

Цитата:
В Vista работает отлично. А можно пример, как встраивать его в инсталятор Kindly или в Vista Lite Skin.
Я для своего инсталятора испльзовал часть скрипта от инсталятора Kindly. Теперь не знаю как использовать в ней ваш код.

Спасибо за инфу про Vist'у.
Vista Lite Skin сейчас нету под рукой, отвечу либо в понедельник, либо может кто за это время поможет без меня.

htuos

Цитата:
пожалуй еще раз покритикую, теперь is7z.dll без обид

Никаких обид, ибо дельные вещи говоришь
Цитата:
в качестве предложения:
передавать в процедуру распаковки хэндлы TNewStaticText и TNewProgressBar и в самой процедуре выводить в StaticText распаковываемый файл, и в процедуре менять позицию ProgressBar.
вот тогда будет просто отлично

Отличная идея, похоже я как всегда всё усложнил
Цитата:
еще один прогресс бар для отображения распаковки текущего файла

Это тоже можно сделать, но думаю опционально.

Раньше понедельника на форуме не появлюсь, так что все иправления на следующей неделе.


Автор: Serega0675
Дата сообщения: 12.12.2008 19:07
Кто знает, как добавить свою папку с ярлыками в Панель управления? Наподобие папки Администрирование…

Diawer
Цитата:
У меня на странице выбора дополнительных задач (wpSelectTasks) вставлено небольшое изображение
А можете показать пример, как добавить на страницу выбора дополнительных задач рисунок?

Добавлено:
Aion13

Цитата:
как убрать сообщение, выскакивающее при выборе пути установки: "Папка <название> уже существует.

DirExistsWarning=no
Автор: Aion13
Дата сообщения: 12.12.2008 19:28
crank666

Цитата:
а мне нада в деинсталляторе, я на 91стр. выложил картинку.

UninstallIconFile=icon.ico
Только он уже не поддерживается помоему в версии 5.2.3

Serega0675
Спасибо большое!

И ещё вот ту одна проблемка с обнаружением установленной версии и её удалением при запуске инсталла повторно после установки.
Прописал код. [more]
[Setup]
AppID={{0372DN47-21CW-9E7F-AZ4T-M2PFC27EU244}), // любой подобный код

[Code]
var
ResultStr:string;
ResultCode: Integer;

function InitializeSetup(): Boolean;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0372DN47-21CW-9E7F-AZ4T-M2PFC27EU244}_is1', 'UninstallString', ResultStr)
if ResultStr='' then
begin
Result := True;
end
else
ResultStr:=RemoveQuotes(ResultStr);
Exec(ResultStr, '', '', SW_SHOWNORMAL, ewNoWait, ResultCode)
end;[/more]
Запускаю, устанавливаю. Снова запускаю инстал, появляется информация о том, чтобы удалить, и сразу вылетает окошко о том, чтобы установить. Получается и удаление и установка сразу
Может там параметр wait где поставить надо или что? Как это исправить? В чём проблема. Код брал из справки InnoSetupFAQ_ru-board.chm.
p.S Наверноя я Вас всех тут замумукал собственно безграмотностью. Чтож поделать если в программировании нолик, а сделать инстал нужно позарез. Красоты всем хочется, поэтому добиваемся её как можем. Даже если не умеем.
Автор: Diawer
Дата сообщения: 12.12.2008 20:04
Serega0675

Цитата:
можете показать пример

[more][_Code]
procedure InitializeWizard();
var
BitmapImage: TBitmapImage;
BitmapFileName: String;
begin
BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage := TBitmapImage.Create(WizardForm);
BitmapImage.Top := ScaleY(0);
BitmapImage.Left := ScaleX(362);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := WizardForm.SelectTasksPage;
WizardForm.TasksList.Width := ScaleX(290); //Изменить размер TasksList
end;[/more]

Добавлено:
Вот к нему и надо сделать, что бы указанный цвет был прозрачным.
Автор: Serega0675
Дата сообщения: 12.12.2008 20:29
Diawer
Спасибо!
Автор: Aion13
Дата сообщения: 12.12.2008 21:38
Может кто-нибудь поможет решить проблемку?
Автор: Diawer
Дата сообщения: 12.12.2008 21:46
Я, подумал и пришел к такому выводу, что правильнее использовать не .bmp, а .png, разумеется, с использованием прозрачности. Может, кто помочь с этим?
Автор: Aion13
Дата сообщения: 13.12.2008 00:59
Собственно, возник вопрос: как сделать дополнительную страницу CreateInputOptionPage с чекбоксами, и привязать к ним файлы или папки из секции [Files]?
Автор: GRom V
Дата сообщения: 13.12.2008 05:03
omals

Цитата:
ну так передавай cmd команду
смотрим cmd /?

strTmp:='/K start /w pkgmgr /iu:' + '"' + 'TelnetClient' + '"';
//или strTmp:='/C start ...
// закрывать окно cmd после выполнения /С, не закрывать /K
Exec('cmd.exe', strTmp, '', SW_SHOW, ewWaitUntilTerminated, res);


Извеняюсь..... че нужно сделать чтоб не ругалось на strTmp: ?
Автор: Artem_Butenko
Дата сообщения: 13.12.2008 09:40
Друзья, пожалуйста помогите разобраться с вопросом: в своем инсталляторе я пропускаю страницу выбора директории установки, при этом путь установки берется из реестра, а в случае отсутствия соответствующего ключа установка прерывается. Но мне этого не нужно! Я хотел бы реализовать следующее: если ключ реестра (содержащий полный путь к определенной папке) инсталлятором не найде, открывалось бы диалоговое окно, в котором можно было бы вручную указать корневой каталог установки, и при нажатии "OK" происходила распаковка файлов. Буду бесконечно рад любой помощи!
Автор: noiseless
Дата сообщения: 13.12.2008 10:14
GRom V
В твоей процедуре до begin нужно добавить строчку:
var strTmp: string;
Автор: Aion13
Дата сообщения: 13.12.2008 10:52
Кто может помочь со скриптом обнаружения и последующего удаления программы?

Мне нужно, чтобы если программа установлена (здесь проверка на наличие ключа установки), то начинался процесс удаления БЕЗ запуска программы установки, которая может появится в трее в паре с программой удаления. Если программа не установлена, то начиналась установка.

Все коды которые в хелпах и прочее не работают так как надо, а точнее идёт установка и удаление враз.

Помогите пожалуйста кто знает!!!

И вот с этой проблемкой помоги плиз.
Автор: Artem_Butenko
Дата сообщения: 13.12.2008 11:40
Товарищи, извиняюсь за столь стремительную генерацию вопросов, просто хотелось уточнить и дополнить проблему, изложенную мною выше: можно ли реализовать проверку файла (по имени и его md5) находящегося рядом с исполнительным файлом инсталлятора, и если проверка пройдена успешно, то внешний файл перезаписывался файлом из инсталлятора?
Автор: Aion13
Дата сообщения: 13.12.2008 15:41
Что-то всё стихло
Автор: EagleSH
Дата сообщения: 13.12.2008 17:04
ExpeditorR
http://freearc.org/
вот этот архиватор прикрутить бы к твоему is7z - былобы просто супер, ибо он на порядок круче 7z жмёт... уже успел проверить лично....

1,4 гига 7z со словарём в 256 зажал 880 метров а freearc в 735
Автор: Ninja33
Дата сообщения: 13.12.2008 21:52
Люди,кто знает,можно ли из inno setup вытащить полный скрипт,или как или чем,посмотреть секцию code в инсталяторе?Подскажите ПЛЗ.Спасибо...
Автор: serg_aka_lain
Дата сообщения: 13.12.2008 22:24
Ninja33

Цитата:
можно ли из inno setup вытащить полный скрипт,или как или чем,посмотреть секцию code в инсталяторе?

К сожалению, нет.
Автор: Aion13
Дата сообщения: 13.12.2008 23:02
Может всё-таки кто-нибудь глянет на эту проблемку: http://forum.ru-board.com/topic.cgi?forum=5&topic=27438&start=1860#16
Автор: GRom V
Дата сообщения: 14.12.2008 06:40
noiseless

Цитата:
В твоей процедуре до begin нужно добавить строчку:
var strTmp: string;

Спасибо огромное - все путем...
Автор: Aion13
Дата сообщения: 14.12.2008 10:36
Ребят, ну пожалуйста, помогите мне с этими проблемами! Очень нужно! Уже начал отчаиватся совсем в поиске решений

Вот то, что мне осталось реализовать.

1) Как сделать дополнительную страницу CreateInputOptionPage (идёт после выбора доп.задач, где создание ярлыков и прочее) с чекбоксами, и привязать к ним файлы или папки из секции [Files], т.е. поставил галочку на пункте и пошла установка из файлов из этой секции?

2) Как сделать обнаружение установки\удаления программы вот по такой схеме:

- запускаем инсталлятор в 1 раз --> идёт установка программы
- запускаем его 2 раз --> появляется окошко, о том чтобы удалить, но НЕ через команду MsgBox, а стандартное сообщение об удалении. На панели задач в это время висит ТОЛЬКО процесс удаления.
- если соглашаемся удалить, то получаем процесс удаления, как только удалился, запускается процесс установки с появлением соответствующего процесса в панели задач. Как только процесс удаления завершился, окно подтверждения, о том, что программа удалена пропускается и сразу начинается установка.
- если отказываемся, сразу появляется окно установки.

Перерыл все коды, которые в хелпах и прочих документациях, но не нашёл того варианта, что мне нужно. Либо они не работают так как надо, либо работают криво.
Автор: Ninja33
Дата сообщения: 14.12.2008 10:49

Цитата:
К сожалению, нет.

Жаль... А можно извлечь код из файла CompiledCode.bin?
Автор: clemenco
Дата сообщения: 14.12.2008 11:09
Aion13
Думаю это то, что ты ищешь.[more]function InitializeSetup(): Boolean;
var
ResultCode: Integer;
ResultStr:string;
begin
Result:=True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\СТАЛКЕР ТЧ НС_is1', 'UninstallString', ResultStr)
then
begin
If ResultStr<>''
then
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Программа установки обнаружила, что у вас уже установлена Имя вашей программы.' #13#13 'ВНИМАНИЕ!' #13 'Папка "ваша папка" и её содержимое удаляться не будет. При необходимости удалите её вручную.' #13#13 'Хотите удалить старую версию перед установкой новой версии?', mbConfirmation, MB_YESNO) = idYes
then
if not Exec(ResultStr, '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
then
MsgBox('Uninstall Error. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Удаляемые файлы не найдены, возможно они были уже удалены, перемещены или переименованы.', mbError, MB_OK);
end;
end;
end;
end; [/more] возможно и нет...

Помогите совместить этот код is7z_exemple [more];Пример распаковки 7zip архива, с отображением прогресс бара в окне Inno Setup
;Автор примера и is7z.dll Павлов Дмитрий (aka ExpeditoR)
;пишите если что dimon-na-domu@mail.ru
;Если вам понравилась данная библиотека, то загляните на мой сайт http://mp3runner.narod.ru/
;и посмотрите другой мой проект mp3runner.
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
Compression=zip

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

[Files]
Source: c:\games\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: is7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy

[Icons]
Name: {group}\Удалить; IconFilename: {app}\unins000.exe; Filename: {app}\unins000.exe

[Code]
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
var
ProgressBar : TNewProgressBar;
TimerID: LongWord;
pfunc: LongWord;
Label1:tlabel;

function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
procedure Extract7z (hWnd: THandle; fpath,extractPath:pchar); external 'Extract7z@files:is7z.dll stdcall';
function progress:integer; external 'progress@files:is7z.dll stdcall';
function progressmax:integer; external 'progressmax@files:is7z.dll stdcall';

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
progressbar.Max:=progressmax;
progressbar.Position:=progress;
end;


procedure InitializeWizard();
begin
ProgressBar := TNewProgressBar.Create(WizardForm);
label1:=Tlabel.Create(WizardForm);
WizardForm.ProgressGauge.left:=135;
WizardForm.FilenameLabel.left:=135;
WizardForm.ProgressGauge.width:=280;
ProgressBar.Left := 10;
ProgressBar.Top := WizardForm.ProgressGauge.Top;
ProgressBar.Width := 120;
ProgressBar.Height := WizardForm.ProgressGauge.Height;
ProgressBar.Parent := WizardForm.InstallingPage;
ProgressBar.Position := 0;
label1.parent:=WizardForm.InstallingPage;
label1.top:=WizardForm.FilenameLabel.Top;
label1.caption:='Распаковка архива 7zip';
label1.left:=10;
label1.width:=130;
end;


procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall then
begin
pfunc:=WrapTimerProc(@OnTimer, 4)
TimerID:=SetTimer(0, 0, 200, pfunc)
Extract7z (wizardform.handle, ExpandConstant('{src}') + '\anyfiles.7z', ExpandConstant('{app}'));
end
end;

procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpFinished then KillTimer(0, TimerID);
end;[/more]
и Vista Lite Skin [more]#define WizardImage "WizardImage.bmp"
#define SysButtonImage "SysButtonImage.bmp"

[Setup]
AppName=Vista Lite Skin
AppVerName=Vista Lite Skin
DefaultDirName={pf}\Vista Lite Skin
WizardImageFile={#WizardImage}

[Files]
Source: {#SysButtonImage}; DestDir: {tmp}; Flags: dontcopy

[Code]
Const
FontColor = $ffffff; //цвет шрифта
CaptionLabel = $e3be2e; //цвет заднего текста заголовка окна
CaptionLabel2 = $ffffff; //цвет текста заголовка окна
BeveledLabelFontColor = clBlue; //цвет текста в нижнем левом углу
Radius = 9; //радиус углов WizardForm
WM_SYSCOMMAND = $0112;

Var
YesRadio,NoRadio: TRadioButton;
WelcomeLabel1,WelcomeLabel2,LicenseLabel1,LicenseAcceptedLabel,LicenseNotAcceptedLabel,PasswordLabel,PasswordEditLabel,
InfoBeforeClickLabel,UserInfoNameLabel,UserInfoOrgLabel,UserInfoSerialLabel,SelectDirLabel,SelectDirBrowseLabel,DiskSpaceLabel,
SelectComponentsLabel,ComponentsDiskSpaceLabel,SelectStartMenuFolderLabel,SelectStartMenuFolderBrowseLabel,NoIconsLabel,
SelectTasksLabel,ReadyLabel,StatusLabel,InfoAfterClickLabel,FinishedHeadingLabel,FinishedLabel,YesRadioLabel,NoRadioLabel,
BeveledLabel,PageNameLabel,PageDescriptionLabel,WizardLabel,MinLabel,ExtLabel,WizardCaptionLabel,WizardCaptionLabel2: TLabel;
MinPanel,ExtPanel: Tpanel;
MinImage,ExtImage: TBitmapImage;
FormRegion: tHandle;

function CreateRoundRectRgn(p1, p2, p3, p4, p5, p6: Integer): THandle; external 'CreateRoundRectRgn@gdi32 stdcall';
function SetWindowRgn(hWnd: HWND; hRgn: THandle; bRedraw: Boolean): Integer; external 'SetWindowRgn@user32 stdcall';
function ShowWindow(hWnd: LongWord; nCmdShow: LongWord): LongWord; external 'ShowWindow@user32.dll stdcall';
function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';

procedure WizardLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture
SendMessage(WizardForm.Handle, WM_SYSCOMMAND, $F012, 0)
end;

procedure ShapeForm(aForm: TForm; edgeSize: integer);
begin
FormRegion:=CreateRoundRectRgn(0,0, aForm.width, aForm.height, edgeSize,edgeSize)
SetWindowRgn(aForm.Handle, FormRegion, True)
end;

procedure MinLabelOnClick(Sender: TObject);
begin
ShowWindow(WizardForm.Handle, SW_SHOWMINIMIZED)
end;

procedure ExtLabelOnClick(Sender: TObject);
begin
WizardForm.Close
end;

procedure MinLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
MinImage.Left:=-44
end;

procedure MinLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
MinImage.Left:=0
end;

procedure ExtLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ExtImage.Left:=-44
end;

procedure ExtLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ExtImage.Left:=0
end;

Procedure LicenseAcceptedOnClick (Sender: TObject);
begin
WizardForm.LicenseAcceptedRadio.Checked:=True
end;

Procedure LicenseNotAcceptedOnClick (Sender: TObject);
begin
WizardForm.LicenseNotAcceptedRadio.Checked:=True
end;

Procedure NoIconsLabelOnClick (Sender: TObject);
begin
WizardForm.NoIconsCheck.Checked:=Not(WizardForm.NoIconsCheck.Checked)
end;

Procedure YesRadioOnClick (Sender: TObject);
begin
WizardForm.YesRadio.Checked:=True
end;

Procedure NoRadioOnClick (Sender: TObject);
begin
WizardForm.NoRadio.Checked:=True
end;

Procedure HideAll();
begin
WizardForm.Bevel.Hide
WizardForm.Bevel1.Hide
WizardForm.MainPanel.Hide
WizardForm.BeveledLabel.Hide
WizardForm.OuterNotebook.Hide
WizardForm.InnerNotebook.Hide

WelcomeLabel1.Hide
WelcomeLabel2.Hide
LicenseLabel1.Hide
WizardForm.LicenseMemo.Hide
WizardForm.LicenseAcceptedRadio.Hide
LicenseAcceptedLabel.Hide
WizardForm.LicenseNotAcceptedRadio.Hide
LicenseNotAcceptedLabel.Hide
PasswordLabel.Hide
PasswordEditLabel.Hide
WizardForm.PasswordEdit.Hide
InfoBeforeClickLabel.Hide
WizardForm.InfoBeforeMemo.Hide
UserInfoNameLabel.Hide
WizardForm.UserInfoNameEdit.Hide
UserInfoOrgLabel.Hide
WizardForm.UserInfoOrgEdit.Hide
UserInfoSerialLabel.Hide
WizardForm.UserInfoSerialEdit.Hide
SelectDirLabel.Hide
SelectDirBrowseLabel.Hide
WizardForm.DirEdit.Hide
WizardForm.DirBrowseButton.Hide
DiskSpaceLabel.Hide
SelectComponentsLabel.Hide
WizardForm.TypesCombo.Hide
WizardForm.ComponentsList.Hide
ComponentsDiskSpaceLabel.Hide
SelectStartMenuFolderLabel.Hide
SelectStartMenuFolderBrowseLabel.Hide
WizardForm.GroupEdit.Hide
WizardForm.GroupBrowseButton.Hide
WizardForm.NoIconsCheck.Hide
NoIconsLabel.Hide
SelectTasksLabel.Hide
WizardForm.TasksList.Hide
ReadyLabel.Hide
WizardForm.ReadyMemo.Hide
StatusLabel.Hide
WizardForm.ProgressGauge.Hide
InfoAfterClickLabel.Hide
WizardForm.InfoAfterMemo.Hide
FinishedHeadingLabel.Hide
FinishedLabel.Hide
WizardForm.RunList.Hide
YesRadio.Hide
YesRadioLabel.Hide
NoRadio.Hide
NoRadioLabel.Hide
end;

Procedure InitializeSkin();
begin
ExtractTemporaryFile('{#SysButtonImage}')

WizardForm.Width:=697
WizardForm.Height:=529
WizardForm.BorderStyle:=bsNone
WizardForm.Center

ShapeForm(WizardForm, radius)

WizardForm.WizardBitmapImage.Left:=0
WizardForm.WizardBitmapImage.Top:=0
WizardForm.WizardBitmapImage.AutoSize:=True
WizardForm.WizardBitmapImage.Enabled:=False
WizardForm.WizardBitmapImage.Parent:=WizardForm

WizardLabel:=TLabel.Create(WizardForm)
WizardLabel.Width:=WizardForm.Width
WizardLabel.Height:=WizardForm.Height
WizardLabel.AutoSize:=False
WizardLabel.Transparent:=True
WizardLabel.OnMouseDown:=@WizardLabelMouseDown
WizardLabel.Parent:=WizardForm

WizardCaptionLabel:=TLabel.Create(WizardForm)
WizardCaptionLabel.Left:=11
WizardCaptionLabel.Top:=9
WizardCaptionLabel.Transparent:=True
WizardCaptionLabel.Font.Size:=10
WizardCaptionLabel.Font.Style:=[fsBold]
WizardCaptionLabel.Font.Color:=CaptionLabel
WizardCaptionLabel.Caption:=WizardForm.Caption
WizardCaptionLabel.OnMouseDown:=@WizardLabelMouseDown
WizardCaptionLabel.Parent:=WizardForm

WizardCaptionLabel2:=TLabel.Create(WizardForm)
WizardCaptionLabel2.Left:=10
WizardCaptionLabel2.Top:=8
WizardCaptionLabel2.Transparent:=True
WizardCaptionLabel2.Font.Size:=10
WizardCaptionLabel2.Font.Style:=[fsBold]
WizardCaptionLabel2.Font.Color:=CaptionLabel2
WizardCaptionLabel2.Caption:=WizardForm.Caption
WizardCaptionLabel2.OnMouseDown:=@WizardLabelMouseDown
WizardCaptionLabel2.Parent:=WizardForm

MinPanel:=TPanel.Create(WizardForm)
MinPanel.Left:=602
MinPanel.Top:=0
MinPanel.Width:=44
MinPanel.Height:=18
MinPanel.Parent:=WizardForm

MinImage:=TBitmapImage.Create(WizardForm)
MinImage.Left:=0
MinImage.Top:=0
MinImage.AutoSize:=True
MinImage.Enabled:=False
MinImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\{#SysButtonImage}'))
MinImage.Parent:=MinPanel

MinLabel:=TLabel.Create(WizardForm)
MinLabel.Left:=0
MinLabel.Top:=0
MinLabel.Width:=44
MinLabel.Height:=18
MinLabel.AutoSize:=False
MinLabel.Transparent:=True
MinLabel.OnClick:=@MinLabelOnClick
MinLabel.OnMouseDown:=@MinLabelMouseDown
MinLabel.OnMouseUp:=@MinLabelMouseUp
MinLabel.Parent:=MinPanel

ExtPanel:=TPanel.Create(WizardForm)
ExtPanel.Left:=646
ExtPanel.Top:=0
ExtPanel.Width:=44
ExtPanel.Height:=18
ExtPanel.Parent:=WizardForm

ExtImage:=TBitmapImage.Create(WizardForm)
ExtImage.Left:=0
ExtImage.Top:=-18
ExtImage.AutoSize:=True
ExtImage.Enabled:=False
ExtImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\{#SysButtonImage}'))
ExtImage.Parent:=ExtPanel

ExtLabel:=TLabel.Create(WizardForm)
ExtLabel.Left:=0
ExtLabel.Top:=0
ExtLabel.Width:=44
ExtLabel.Height:=18
ExtLabel.AutoSize:=False
ExtLabel.Transparent:=True
ExtLabel.OnClick:=@ExtLabelOnClick
ExtLabel.OnMouseDown:=@ExtLabelMouseDown
ExtLabel.OnMouseUp:=@ExtLabelMouseUp
ExtLabel.Parent:=ExtPanel

WizardForm.BackButton.Left:=293
WizardForm.BackButton.Top:=485
WizardForm.BackButton.Width:=77
WizardForm.BackButton.Height:=25

WizardForm.NextButton.Left:=375
WizardForm.NextButton.Top:=485
WizardForm.NextButton.Width:=77
WizardForm.NextButton.Height:=25

WizardForm.CancelButton.Left:=600
WizardForm.CancelButton.Top:=485
WizardForm.CancelButton.Width:=77
WizardForm.CancelButton.Height:=25

PageNameLabel:=TLabel.Create(WizardForm)
PageNameLabel.Left:=20
PageNameLabel.Top:=40
PageNameLabel.Transparent:=True
PageNameLabel.Font.Style:=[fsBold]
PageNameLabel.Font.Color:=FontColor
PageNameLabel.OnMouseDown:=@WizardLabelMouseDown
PageNameLabel.Parent:=WizardForm

PageDescriptionLabel:=TLabel.Create(WizardForm)
PageDescriptionLabel.Left:=30
PageDescriptionLabel.Top:=60
PageDescriptionLabel.Transparent:=True
PageDescriptionLabel.Font.Color:=FontColor
PageDescriptionLabel.OnMouseDown:=@WizardLabelMouseDown
PageDescriptionLabel.Parent:=WizardForm

BeveledLabel:=TLabel.Create(WizardForm)
BeveledLabel.Left:=10
BeveledLabel.Top:=490
BeveledLabel.Font.Color:=BeveledLabelFontColor
BeveledLabel.Transparent:=True
BeveledLabel.Caption:=WizardForm.BeveledLabel.Caption
BeveledLabel.Parent:=WizardForm

WizardForm.BeveledLabel.Left:=700

// wpWelcome
WelcomeLabel1:=TLabel.Create(WizardForm)
WelcomeLabel1.Left:=205
WelcomeLabel1.Top:=210
WelcomeLabel1.Width:=465
WelcomeLabel1.Height:=28
WelcomeLabel1.AutoSize:=False
WelcomeLabel1.WordWrap:=True
WelcomeLabel1.Transparent:=True
WelcomeLabel1.Font.Color:=FontColor
WelcomeLabel1.Font.Style:=[fsBold]
WelcomeLabel1.Caption:=WizardForm.WelcomeLabel1.Caption
WelcomeLabel1.OnMouseDown:=@WizardLabelMouseDown
WelcomeLabel1.Parent:=WizardForm

WelcomeLabel2:=TLabel.Create(WizardForm)
WelcomeLabel2.Left:=205
WelcomeLabel2.Top:=250
WelcomeLabel2.Width:=465
WelcomeLabel2.Height:=200
WelcomeLabel2.AutoSize:=False
WelcomeLabel2.WordWrap:=True
WelcomeLabel2.Font.Color:=FontColor
WelcomeLabel2.Transparent:=True
WelcomeLabel2.Caption:=WizardForm.WelcomeLabel2.Caption
WelcomeLabel2.OnMouseDown:=@WizardLabelMouseDown
WelcomeLabel2.Parent:=WizardForm

// wpLicense
LicenseLabel1:=TLabel.Create(WizardForm)
LicenseLabel1.Left:=205
LicenseLabel1.Top:=110
LicenseLabel1.Width:=465
LicenseLabel1.Height:=28
LicenseLabel1.AutoSize:=False
LicenseLabel1.WordWrap:=True
LicenseLabel1.Font.Color:=FontColor
LicenseLabel1.Transparent:=True
LicenseLabel1.Caption:=WizardForm.LicenseLabel1.Caption
LicenseLabel1.OnMouseDown:=@WizardLabelMouseDown
LicenseLabel1.Parent:=WizardForm

WizardForm.LicenseMemo.Left:=205
WizardForm.LicenseMemo.Top:=148
WizardForm.LicenseMemo.Width:=465
WizardForm.LicenseMemo.Height:=266
WizardForm.LicenseMemo.Parent:=WizardForm

WizardForm.LicenseAcceptedRadio.Left:=205
WizardForm.LicenseAcceptedRadio.Top:=425
WizardForm.LicenseAcceptedRadio.Width:=14
WizardForm.LicenseAcceptedRadio.Height:=14
WizardForm.LicenseAcceptedRadio.Color:=$d28b23
WizardForm.LicenseAcceptedRadio.Parent:=WizardForm

LicenseAcceptedLabel:=TLabel.Create(WizardForm)
LicenseAcceptedLabel.Left:=221
LicenseAcceptedLabel.Top:=425
LicenseAcceptedLabel.Font.Color:=FontColor
LicenseAcceptedLabel.Transparent:=True
LicenseAcceptedLabel.BringToFront
LicenseAcceptedLabel.Caption:=WizardForm.LicenseAcceptedRadio.Caption
LicenseAcceptedLabel.OnClick:=@LicenseAcceptedOnClick
LicenseAcceptedLabel.Parent:=WizardForm

WizardForm.LicenseNotAcceptedRadio.Left:=205
WizardForm.LicenseNotAcceptedRadio.Top:=445
WizardForm.LicenseNotAcceptedRadio.Width:=14
WizardForm.LicenseNotAcceptedRadio.Height:=14
WizardForm.LicenseNotAcceptedRadio.Color:=$d99738
WizardForm.LicenseNotAcceptedRadio.Parent:=WizardForm

LicenseNotAcceptedLabel:=TLabel.Create(WizardForm)
LicenseNotAcceptedLabel.Left:=221
LicenseNotAcceptedLabel.Top:=445
LicenseNotAcceptedLabel.Font.Color:=FontColor
LicenseNotAcceptedLabel.Transparent:=True
LicenseNotAcceptedLabel.Caption:=WizardForm.LicenseNotAcceptedRadio.Caption
LicenseNotAcceptedLabel.OnClick:=@LicenseNotAcceptedOnClick
LicenseNotAcceptedLabel.Parent:=WizardForm

// wpPassword
PasswordLabel:=TLabel.Create(WizardForm)
PasswordLabel.Left:=205
PasswordLabel.Top:=110
PasswordLabel.Width:=465
PasswordLabel.Height:=28
PasswordLabel.AutoSize:=False
PasswordLabel.WordWrap:=True
PasswordLabel.Font.Color:=FontColor
PasswordLabel.Transparent:=True
PasswordLabel.Caption:=WizardForm.PasswordLabel.Caption
PasswordLabel.OnMouseDown:=@WizardLabelMouseDown
PasswordLabel.Parent:=WizardForm

PasswordEditLabel:=TLabel.Create(WizardForm)
PasswordEditLabel.Left:=205
PasswordEditLabel.Top:=144
PasswordEditLabel.Font.Color:=FontColor
PasswordEditLabel.Transparent:=True
PasswordEditLabel.Caption:=WizardForm.PasswordEditLabel.Caption
PasswordEditLabel.OnMouseDown:=@WizardLabelMouseDown
PasswordEditLabel.Parent:=WizardForm

WizardForm.PasswordEdit.Left:=205
WizardForm.PasswordEdit.Top:=160
WizardForm.PasswordEdit.Width:=465
WizardForm.PasswordEdit.Height:=21
WizardForm.PasswordEdit.Color:=$ffffff
WizardForm.PasswordEdit.Font.Color:=$000000
WizardForm.PasswordEdit.Parent:= WizardForm

// wpInfoBefore
InfoBeforeClickLabel:=TLabel.Create(WizardForm)
InfoBeforeClickLabel.Left:=205
InfoBeforeClickLabel.Top:=110
InfoBeforeClickLabel.Font.Color:=FontColor
InfoBeforeClickLabel.Transparent:=True
InfoBeforeClickLabel.Caption:=WizardForm.InfoBeforeClickLabel.Caption
InfoBeforeClickLabel.OnMouseDown:=@WizardLabelMouseDown
InfoBeforeClickLabel.Parent:=WizardForm

WizardForm.InfoBeforeMemo.Left:=205
WizardForm.InfoBeforeMemo.Top:=134
WizardForm.InfoBeforeMemo.Width:=465
WizardForm.InfoBeforeMemo.Height:=300
WizardForm.InfoBeforeMemo.Parent:= WizardForm

// wpUserInfo
UserInfoNameLabel:=TLabel.Create(WizardForm)
UserInfoNameLabel.Left:=205
UserInfoNameLabel.Top:=110
UserInfoNameLabel.Font.Color:=FontColor
UserInfoNameLabel.Transparent:=True
UserInfoNameLabel.Caption:=WizardForm.UserInfoNameLabel.Caption
UserInfoNameLabel.OnMouseDown:=@WizardLabelMouseDown
UserInfoNameLabel.Parent:=WizardForm

WizardForm.UserInfoNameEdit.Left:=205
WizardForm.UserInfoNameEdit.Top:=126
WizardForm.UserInfoNameEdit.Width:=465
WizardForm.UserInfoNameEdit.Height:=21
WizardForm.UserInfoNameEdit.Color:=$ffffff
WizardForm.UserInfoNameEdit.Font.Color:=$000000
WizardForm.UserInfoNameEdit.Parent:= WizardForm

UserInfoOrgLabel:=TLabel.Create(WizardForm)
UserInfoOrgLabel.Left:=205
UserInfoOrgLabel.Top:=162
UserInfoOrgLabel.Font.Color:=FontColor
UserInfoOrgLabel.Transparent:=True
UserInfoOrgLabel.Caption:=WizardForm.UserInfoOrgLabel.Caption
UserInfoOrgLabel.OnMouseDown:=@WizardLabelMouseDown
UserInfoOrgLabel.Parent:=WizardForm

WizardForm.UserInfoOrgEdit.Left:=205
WizardForm.UserInfoOrgEdit.Top:=178
WizardForm.UserInfoOrgEdit.Width:=465
WizardForm.UserInfoOrgEdit.Height:=21
WizardForm.UserInfoOrgEdit.Color:=$ffffff
WizardForm.UserInfoOrgEdit.Font.Color:=$000000
WizardForm.UserInfoOrgEdit.Parent:= WizardForm

UserInfoSerialLabel:=TLabel.Create(WizardForm)
UserInfoSerialLabel.Left:=205
UserInfoSerialLabel.Top:=214
UserInfoSerialLabel.Font.Color:=FontColor
UserInfoSerialLabel.Transparent:=True
UserInfoSerialLabel.Caption:=WizardForm.UserInfoSerialLabel.Caption
UserInfoSerialLabel.OnMouseDown:=@WizardLabelMouseDown
UserInfoSerialLabel.Parent:=WizardForm

WizardForm.UserInfoSerialEdit.Left:=205
WizardForm.UserInfoSerialEdit.Top:=230
WizardForm.UserInfoSerialEdit.Width:=465
WizardForm.UserInfoSerialEdit.Height:=21
WizardForm.UserInfoSerialEdit.Color:=$ffffff
WizardForm.UserInfoSerialEdit.Font.Color:=$000000
WizardForm.UserInfoSerialEdit.Parent:= WizardForm

// wpSelectDir
SelectDirLabel:=TLabel.Create(WizardForm)
SelectDirLabel.Left:=205
SelectDirLabel.Top:=110
SelectDirLabel.Width:=465
SelectDirLabel.Height:=28
SelectDirLabel.AutoSize:=False
SelectDirLabel.WordWrap:=True
SelectDirLabel.Font.Color:=FontColor
SelectDirLabel.Transparent:=True
SelectDirLabel.Caption:=WizardForm.SelectDirLabel.Caption
SelectDirLabel.OnMouseDown:=@WizardLabelMouseDown
SelectDirLabel.Parent:=WizardForm

SelectDirBrowseLabel:=TLabel.Create(WizardForm)
SelectDirBrowseLabel.Left:=205
SelectDirBrowseLabel.Top:=140
SelectDirBrowseLabel.Width:=465
SelectDirBrowseLabel.Height:=28
SelectDirBrowseLabel.AutoSize:=False
SelectDirBrowseLabel.WordWrap:=True
SelectDirBrowseLabel.Font.Color:=FontColor
SelectDirBrowseLabel.Transparent:=True
SelectDirBrowseLabel.Caption:=WizardForm.SelectDirBrowseLabel.Caption
SelectDirBrowseLabel.OnMouseDown:=@WizardLabelMouseDown
SelectDirBrowseLabel.Parent:=WizardForm

WizardForm.DirEdit.Left:=205
WizardForm.DirEdit.Top:=400
WizardForm.DirEdit.Width:=370
WizardForm.DirEdit.Height:=21
WizardForm.DirEdit.Color:=$ffffff
WizardForm.DirEdit.Font.Color:=$000000
WizardForm.DirEdit.Parent:= WizardForm

WizardForm.DirBrowseButton.Left:=593
WizardForm.DirBrowseButton.Top:=398
WizardForm.DirBrowseButton.Width:=77
WizardForm.DirBrowseButton.Height:=25
WizardForm.DirBrowseButton.Parent:= WizardForm

DiskSpaceLabel:=TLabel.Create(WizardForm)
DiskSpaceLabel.Left:=205
DiskSpaceLabel.Top:=435
DiskSpaceLabel.Font.Color:=FontColor
DiskSpaceLabel.Transparent:=True
DiskSpaceLabel.Caption:=WizardForm.DiskSpaceLabel.Caption
DiskSpaceLabel.OnMouseDown:=@WizardLabelMouseDown
DiskSpaceLabel.Parent:=WizardForm

// wpSelectComponents
SelectComponentsLabel:=TLabel.Create(WizardForm)
SelectComponentsLabel.Left:=205
SelectComponentsLabel.Top:=110
SelectComponentsLabel.Width:=465
SelectComponentsLabel.Height:=42
SelectComponentsLabel.AutoSize:=False
SelectComponentsLabel.WordWrap:=True
SelectComponentsLabel.Font.Color:=FontColor
SelectComponentsLabel.Transparent:=True
SelectComponentsLabel.Caption:=WizardForm.SelectComponentsLabel.Caption
SelectComponentsLabel.OnMouseDown:=@WizardLabelMouseDown
SelectComponentsLabel.Parent:=WizardForm

WizardForm.TypesCombo.Left:=205
WizardForm.TypesCombo.Top:=154
WizardForm.TypesCombo.Width:=465
WizardForm.TypesCombo.Height:=21
WizardForm.TypesCombo.Color:=$ffffff
WizardForm.TypesCombo.Font.Color:=$000000
WizardForm.TypesCombo.Style:=csDropDown
WizardForm.TypesCombo.Parent:= WizardForm

WizardForm.ComponentsList.Left:=205
WizardForm.ComponentsList.Top:=178
WizardForm.ComponentsList.Width:=465
WizardForm.ComponentsList.Height:=243
WizardForm.ComponentsList.Color:=$ffffff
WizardForm.ComponentsList.Font.Color:=$000000
WizardForm.ComponentsList.Parent:= WizardForm

ComponentsDiskSpaceLabel:=TLabel.Create(WizardForm)
ComponentsDiskSpaceLabel.Left:=205
ComponentsDiskSpaceLabel.Top:=435
ComponentsDiskSpaceLabel.Font.Color:=FontColor
ComponentsDiskSpaceLabel.Transparent:=True
ComponentsDiskSpaceLabel.Caption:=WizardForm.ComponentsDiskSpaceLabel.Caption
ComponentsDiskSpaceLabel.OnMouseDown:=@WizardLabelMouseDown
ComponentsDiskSpaceLabel.Parent:=WizardForm

// wpSelectProgramGroup
SelectStartMenuFolderLabel:=TLabel.Create(WizardForm)
SelectStartMenuFolderLabel.Left:=205
SelectStartMenuFolderLabel.Top:=110
SelectStartMenuFolderLabel.Width:=465
SelectStartMenuFolderLabel.Height:=28
SelectStartMenuFolderLabel.AutoSize:=False
SelectStartMenuFolderLabel.WordWrap:=True
SelectStartMenuFolderLabel.Font.Color:=FontColor
SelectStartMenuFolderLabel.Transparent:=True
SelectStartMenuFolderLabel.Caption:=WizardForm.SelectStartMenuFolderLabel.Caption
SelectStartMenuFolderLabel.OnMouseDown:=@WizardLabelMouseDown
SelectStartMenuFolderLabel.Parent:=WizardForm

SelectStartMenuFolderBrowseLabel:=TLabel.Create(WizardForm)
SelectStartMenuFolderBrowseLabel.Left:=205
SelectStartMenuFolderBrowseLabel.Top:=140
SelectStartMenuFolderBrowseLabel.Width:=465
SelectStartMenuFolderBrowseLabel.Height:=28
SelectStartMenuFolderBrowseLabel.AutoSize:=False
SelectStartMenuFolderBrowseLabel.WordWrap:=True
SelectStartMenuFolderBrowseLabel.Font.Color:=FontColor
SelectStartMenuFolderBrowseLabel.Transparent:=True
SelectStartMenuFolderBrowseLabel.Caption:=WizardForm.SelectStartMenuFolderBrowseLabel.Caption
SelectStartMenuFolderBrowseLabel.OnMouseDown:=@WizardLabelMouseDown
SelectStartMenuFolderBrowseLabel.Parent:=WizardForm

WizardForm.GroupEdit.Left:=205
WizardForm.GroupEdit.Top:=400
WizardForm.GroupEdit.Width:=370
WizardForm.GroupEdit.Height:=21
WizardForm.GroupEdit.Color:=$ffffff
WizardForm.GroupEdit.Font.Color:=$000000
WizardForm.GroupEdit.Parent:= WizardForm

WizardForm.GroupBrowseButton.Left:=593
WizardForm.GroupBrowseButton.Top:=398
WizardForm.GroupBrowseButton.Width:=77
WizardForm.GroupBrowseButton.Height:=25
WizardForm.GroupBrowseButton.Parent:= WizardForm

WizardForm.NoIconsCheck.Left:=205
WizardForm.NoIconsCheck.Top:=435
WizardForm.NoIconsCheck.Width:=13
WizardForm.NoIconsCheck.Height:=13
WizardForm.NoIconsCheck.Visible:=True
WizardForm.NoIconsCheck.Parent:= WizardForm

NoIconsLabel:=TLabel.Create(WizardForm)
NoIconsLabel.Left:=221
NoIconsLabel.Top:=435
NoIconsLabel.Font.Color:=FontColor
NoIconsLabel.Transparent:=True
NoIconsLabel.OnClick:=@NoIconsLabelOnClick
NoIconsLabel.Caption:=WizardForm.NoIconsCheck.Caption
NoIconsLabel.Parent:=WizardForm

// wpSelectTasks
SelectTasksLabel:=TLabel.Create(WizardForm)
SelectTasksLabel.Left:=205
SelectTasksLabel.Top:=110
SelectTasksLabel.Width:=465
SelectTasksLabel.Height:=28
SelectTasksLabel.AutoSize:=False
SelectTasksLabel.WordWrap:=True
SelectTasksLabel.Font.Color:=FontColor
SelectTasksLabel.Transparent:=True
SelectTasksLabel.Caption:=WizardForm.SelectTasksLabel.Caption
SelectTasksLabel.OnMouseDown:=@WizardLabelMouseDown
SelectTasksLabel.Parent:=WizardForm

WizardForm.TasksList.Left:=205
WizardForm.TasksList.Top:=154
WizardForm.TasksList.Width:=465
WizardForm.TasksList.Height:=300
WizardForm.TasksList.Color:=$ffffff
WizardForm.TasksList.Font.Color:=$000000
WizardForm.TasksList.Parent:= WizardForm

// wpReady
ReadyLabel:=TLabel.Create(WizardForm)
ReadyLabel.Left:=205
ReadyLabel.Top:=110
ReadyLabel.Width:=465
ReadyLabel.Height:=28
ReadyLabel.AutoSize:=False
ReadyLabel.WordWrap:=True
ReadyLabel.Font.Color:=FontColor
ReadyLabel.Transparent:=True
ReadyLabel.OnMouseDown:=@WizardLabelMouseDown
ReadyLabel.Parent:=WizardForm

WizardForm.ReadyMemo.Left:=205
WizardForm.ReadyMemo.Top:=144
WizardForm.ReadyMemo.Width:=465
WizardForm.ReadyMemo.Height:=300
WizardForm.ReadyMemo.Color:=$ffffff
WizardForm.ReadyMemo.Font.Color:=$000000
WizardForm.ReadyMemo.Parent:= WizardForm

// wpInstalling
StatusLabel:=TLabel.Create(WizardForm)
StatusLabel.Left:=205
StatusLabel.Top:=110
StatusLabel.Font.Color:=FontColor
StatusLabel.Transparent:=True
StatusLabel.Caption:=WizardForm.Caption +'...'
StatusLabel.OnMouseDown:=@WizardLabelMouseDown
StatusLabel.Parent:=WizardForm

WizardForm.ProgressGauge.Left:=205
WizardForm.ProgressGauge.Top:=140
WizardForm.ProgressGauge.Width:=465
WizardForm.ProgressGauge.Height:=21
WizardForm.ProgressGauge.Parent:= WizardForm

// wpInfoAfter
InfoAfterClickLabel:=TLabel.Create(WizardForm)
InfoAfterClickLabel.Left:=205
InfoAfterClickLabel.Top:=110
InfoAfterClickLabel.Font.Color:=FontColor
InfoAfterClickLabel.Transparent:=True
InfoAfterClickLabel.Caption:=WizardForm.InfoAfterClickLabel.Caption
InfoAfterClickLabel.OnMouseDown:=@WizardLabelMouseDown
InfoAfterClickLabel.Parent:=WizardForm

WizardForm.InfoAfterMemo.Left:=205
WizardForm.InfoAfterMemo.Top:=144
WizardForm.InfoAfterMemo.Width:=465
WizardForm.InfoAfterMemo.Height:=300
WizardForm.InfoAfterMemo.Parent:= WizardForm

// wpFinished
FinishedHeadingLabel:=TLabel.Create(WizardForm)
FinishedHeadingLabel.Left:=205
FinishedHeadingLabel.Top:=190
FinishedHeadingLabel.Width:=465
FinishedHeadingLabel.Height:=28
FinishedHeadingLabel.AutoSize:=False
FinishedHeadingLabel.WordWrap:=True
FinishedHeadingLabel.Transparent:=True
FinishedHeadingLabel.Font.Color:=FontColor
FinishedHeadingLabel.Font.Style:=[fsBold]
FinishedHeadingLabel.Caption:=WizardForm.FinishedHeadingLabel.Caption
FinishedHeadingLabel.OnMouseDown:=@WizardLabelMouseDown
FinishedHeadingLabel.Parent:=WizardForm

FinishedLabel:=TLabel.Create(WizardForm)
FinishedLabel.Left:=205
FinishedLabel.Top:=230
FinishedLabel.Width:=465
FinishedLabel.Height:=56
FinishedLabel.AutoSize:=False
FinishedLabel.WordWrap:=True
FinishedLabel.Font.Color:=FontColor
FinishedLabel.Transparent:=True
FinishedLabel.Caption:=WizardForm.FinishedLabel.Caption
FinishedLabel.OnMouseDown:=@WizardLabelMouseDown
FinishedLabel.Parent:=WizardForm

WizardForm.RunList.Left:=205
WizardForm.RunList.Top:=310
WizardForm.RunList.Width:=465
WizardForm.RunList.Height:=120
WizardForm.RunList.Color:=$ffffff
WizardForm.RunList.Font.Color:=$000000
WizardForm.RunList.Parent:= WizardForm

YesRadio:=TRadioButton.Create(WizardForm)
YesRadio.Left:=205
YesRadio.Top:=310
YesRadio.Width:=13
YesRadio.Height:=13
YesRadio.Color:=$b58434
YesRadio.OnClick:=@YesRadioOnClick
YesRadio.Parent:=WizardForm

YesRadioLabel:=TLabel.Create(WizardForm)
YesRadioLabel.Left:=221
YesRadioLabel.Top:=310
YesRadioLabel.Font.Color:=FontColor
YesRadioLabel.Transparent:=True
YesRadioLabel.Caption:=WizardForm.YesRadio.Caption
YesRadioLabel.Parent:=WizardForm

NoRadio:=TRadioButton.Create(WizardForm)
NoRadio.Left:=205
NoRadio.Top:=330
NoRadio.Width:=13
NoRadio.Height:=13
NoRadio.Color:=$b58434
NoRadio.OnClick:=@NoRadioOnClick
NoRadio.Parent:=WizardForm

NoRadioLabel:=TLabel.Create(WizardForm)
NoRadioLabel.Left:=221
NoRadioLabel.Top:=330
NoRadioLabel.Font.Color:=FontColor
NoRadioLabel.Transparent:=True
NoRadioLabel.Caption:=WizardForm.NoRadio.Caption
NoRadioLabel.Parent:=WizardForm
end;

Procedure ShowPageComponents(CurPageID: Integer);
begin
PageNameLabel.Caption:=WizardForm.PageNameLabel.Caption
PageDescriptionLabel.Caption:=WizardForm.PageDescriptionLabel.Caption

Case CurPageID of

wpWelcome:
begin
WelcomeLabel1.Show
WelcomeLabel2.Show
end

wpLicense:
begin
LicenseLabel1.Show
WizardForm.LicenseMemo.Show
WizardForm.LicenseAcceptedRadio.Show
LicenseAcceptedLabel.Show
WizardForm.LicenseNotAcceptedRadio.Show
LicenseNotAcceptedLabel.Show
end

wpPassword:
begin
PasswordLabel.Show
PasswordEditLabel.Show
WizardForm.PasswordEdit.Show
end

wpInfoBefore:
begin
InfoBeforeClickLabel.Show
WizardForm.InfoBeforeMemo.Show
end

wpUserInfo:
begin
UserInfoNameLabel.Show
WizardForm.UserInfoNameEdit.Show
UserInfoOrgLabel.Show
WizardForm.UserInfoOrgEdit.Show
UserInfoSerialLabel.Show
WizardForm.UserInfoSerialEdit.Show
end

wpSelectDir:
begin
SelectDirLabel.Show
SelectDirBrowseLabel.Show
WizardForm.DirEdit.Show
WizardForm.DirBrowseButton.Show
DiskSpaceLabel.Show
end

wpSelectComponents:
begin
SelectComponentsLabel.Show
WizardForm.TypesCombo.Show
WizardForm.ComponentsList.Show
ComponentsDiskSpaceLabel.Show
end

wpSelectProgramGroup:
begin
SelectStartMenuFolderLabel.Show
SelectStartMenuFolderBrowseLabel.Show
WizardForm.GroupEdit.Show
WizardForm.GroupBrowseButton.Show
WizardForm.NoIconsCheck.Show
NoIconsLabel.Show
end

wpSelectTasks:
begin
SelectTasksLabel.Show
WizardForm.TasksList.Show
end

wpReady:
begin
ReadyLabel.Show
ReadyLabel.Caption:=WizardForm.ReadyLabel.Caption
WizardForm.ReadyMemo.Show
end

wpInstalling:
begin
StatusLabel.Show
WizardForm.ProgressGauge.Show
end

wpInfoAfter:
begin
InfoAfterClickLabel.Show
WizardForm.InfoAfterMemo.Show
end

wpFinished:
begin
FinishedHeadingLabel.Show
FinishedLabel.Show
FinishedLabel.Caption:=WizardForm.FinishedLabel.Caption
WizardForm.RunList.Show
//YesRadio.Checked:=True
//YesRadio.Show
//YesRadioLabel.Show
//NoRadio.Show
//NoRadioLabel.Show
end
end;
end;

Procedure InitializeWizard();
begin
InitializeSkin
end;

procedure CurPageChanged(CurPageID: Integer);
begin
HideAll
ShowPageComponents(CurPageID)
end;[/more] (можно и SourceScript от Kindly)
Или хотя бы подсказку дайте, как это делать... Перепробовал по разному, процесс идёт но не видно прогресс бара.
PS Надеюсь я не нарушаю их авторские права размещая здесь их код
Автор: Aion13
Дата сообщения: 14.12.2008 11:22
clemenco
Нет, это не то. Даже если убрать эти меседжбоксы
Автор: EagleSH
Дата сообщения: 14.12.2008 11:29
Aion13
[more]
[Setup]
AppId={{BD7B1711-A495-415E-95FE-7068FBD5C05A}
[code]
function InitializeSetup(): Boolean;
var
ResultCode: Integer;
ResultStr:string;
begin
Result:=True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BD7B1711-A495-415E-95FE-7068FBD5C05A}_is1', 'UninstallString', ResultStr)
then
begin
If ResultStr<>''
then
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Программа установки обнаружила уже установленную программу ранней версии.' #13#13 'Вы хотите удалить существующую копию перед продолжением?', mbConfirmation, MB_YESNO) = idYes
then
if not Exec(ResultStr, '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
then
MsgBox('Ошибка удаления. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;
end;
[/more]
Автор: clemenco
Дата сообщения: 14.12.2008 11:33
Aion13
Но ведь когда убираешь
if MsgBox('Программа установки обнаружила, что у вас уже установлена Имя вашей программы.' #13#13 'ВНИМАНИЕ!' #13 'Папка "ваша папка" и её содержимое удаляться не будет. При необходимости удалите её вручную.' #13#13 'Хотите удалить старую версию перед установкой новой версии?', mbConfirmation, MB_YESNO) = idYes
then
и
/silent
Выводится стандартное окно деинсталяции, или я чего то не догоню...
Автор: Aion13
Дата сообщения: 14.12.2008 11:48
Всё прально, мне оно и нужно
А если оставить эти месседж боксы, то тогда встречный вопрос: как отключить все эти подтверждения на удаление файлов, чтобы сразу после месседжа шло удаление, а в конце убиралось подтверждение о том что файлы удалены?

p.S Такие вопросы тут поднимаю, что из бы разобрать да в хелп, потому что очень даже полезные коды для новичков получатся, потому какие коды даны в хелпах, они кривушные, т.е. запускается всё сразу.
Хотя если убрать подтверждение об удалении и успешном удалении, да ещё дописать чтобы запускался ТОЛЬКО процесс удаления в панели задач, то код будет тем что нужно!
Автор: serg_aka_lain
Дата сообщения: 14.12.2008 15:02
Aion13

Цитата:
Вот то, что мне осталось реализовать.

1) Как сделать дополнительную страницу CreateInputOptionPage (идёт после выбора доп.задач, где создание ярлыков и прочее) с чекбоксами, и привязать к ним файлы или папки из секции [Files], т.е. поставил галочку на пункте и пошла установка из файлов из этой секции?

2) Как сделать обнаружение установки\удаления программы вот по такой схеме:

- запускаем инсталлятор в 1 раз --> идёт установка программы
- запускаем его 2 раз --> появляется окошко, о том чтобы удалить, но НЕ через команду MsgBox, а стандартное сообщение об удалении. На панели задач в это время висит ТОЛЬКО процесс удаления.
- если соглашаемся удалить, то получаем процесс удаления, как только удалился, запускается процесс установки с появлением соответствующего процесса в панели задач. Как только процесс удаления завершился, окно подтверждения, о том, что программа удалена пропускается и сразу начинается установка.
- если отказываемся, сразу появляется окно установки.

[more=Пример]


[Setup]
AppName=My Program
AppVerName=My Program v1.2
DefaultDirName={pf}\My Program
OutputDir=.

[Files]
Source: "compiler:Examples\MyProg.exe"; DestDir: "{app}"; Check: Checked; Flags: ignoreversion;

[Code]

var
Page: TInputOptionWizardPage;

function Checked: Boolean;
begin
Result := Page.Values[0];
end;

function InitializeSetup(): Boolean;
var
UnStr: String;
ErrorCode: Integer;
begin
Result := True;
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1', 'UninstallString', UnStr) then
begin
If UnStr <> '' then
begin
UnStr := RemoveQuotes(UnStr);
Exec(UnStr, '', '', SW_Show, ewNoWait, ErrorCode);
Result := False;
Exit;
end;
end;
end;

procedure InitializeWizard();
begin
Page := CreateInputOptionPage(wpSelectTasks,'New Page', 'New Page Description.', 'Please check the box below, then click Next.', False, False);
Page.Add('Check the box');
Page.Values[0] := False;
end;

[/more]

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.