PDA

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


Страниц : 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

Юрій_Окропірідзе@vk
31-12-2014, 14:56
http://forum.oszone.net/attachment.php?attachmentid=120659&stc=1&d=1420026870
http://forum.oszone.net/attachment.php?attachmentid=120660&stc=1&d=1420026870
http://forum.oszone.net/attachment.php?attachmentid=120661&stc=1&d=1420026870
И еще , как в инстале изобразить такое ?

saurn
31-12-2014, 15:08
тут вот какая то ошибка »
ANSI? Исправил пример в предыдущем посте.

Юрій_Окропірідзе@vk
31-12-2014, 17:06
saurn, извините а вы знаете как изобразить так в инсталляторе как я написал выше ?

Юрій_Окропірідзе@vk
31-12-2014, 23:28
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirname={pf}\MyApp
[code]
procedure TButtonOnClick( Sender: TObject );
var
MainForm: TSetupForm;
begin
begin
MainForm := CreateCustomForm();
with MainForm do
try
BorderIcons := [];
ClientWidth := ScaleX( 300 );
ClientHeight := ScaleY( 300 );
Caption := 'Информация';
Position := poScreenCenter;
with TBevel.Create( nil ) do
begin
Parent := MainForm;
SetBounds( ScaleX( 8 ), ScaleY( 8 ), ScaleX( 284 ), ScaleY( 249 ) );
Shape := bsFrame;
end;
with TNewStaticText.Create( nil ) do
begin
Parent := MainForm;
SetBounds( ScaleX( 12 ), ScaleY( 12 ), ScaleX( 276 ), ScaleY( 241 ) );
AutoSize := False;
Caption := 'Информация:' + #13#10 +
'Версия:' + #13#10 +
'И т.д.';
WordWrap := True;
end;
with TButton.Create( nil ) do
begin
Parent := MainForm;
SetBounds( ScaleX( 112 ), ScaleY( 266 ), ScaleX( 76 ), ScaleY( 25 ) );
ModalResult := mrOk;
Caption := 'Закрыть';
end;
ShowModal();
finally
Free;
end;
end;
end;
procedure InitializeWizard();
begin
with TButton.Create( nil ) do
begin
Parent := WizardForm;
Left := ScaleX( 12 );
Top := ScaleY( 327 );
Caption := 'Info';
OnClick := @TButtonOnClick;
end;
end; »

Извините , а как на кнопку Info наложить текстуру ?

ROMKA-1977
01-01-2015, 00:07
Юрій_Окропірідзе@vk, И еще , как в инстале изобразить такое ? »
Так:

Юрій_Окропірідзе@vk
01-01-2015, 01:58
Спасибо. Ах да , ребята , всех с Новым Годом :-))

habib2302
04-01-2015, 13:23
Доброе время суток. Проблема в том, что после запуска инсталлятора для распаковки в {tmp} большого объема (8 гб), то инсталлятор долго грузится. можно ли как нибудь это исправить?

Dodakaedr
04-01-2015, 16:02
можно ли как нибудь это исправить? »
А обязательно все сразу распаковывать? Попробуйте непосредственно перед действием...

habib2302
04-01-2015, 20:26
А обязательно все сразу распаковывать? Попробуйте непосредственно перед действием... »
в каком смысле

Dodakaedr
04-01-2015, 20:38
в каком смысле »
распаковать файл(ы) в тот момент когда они вызываются

habib2302
04-01-2015, 21:13
Dodakaedr, и как организовать?

sergey3695
05-01-2015, 18:59
habib2302, интересно как должны отвечать тебе без скрипта. 8 гб - что же там?

habib2302
05-01-2015, 20:27
sergey3695, то я запаковываю Adobe Master Collection для лучшего сжатия в запакованном он весит 7.62 а без запаковки 11.5
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!

#define MyAppName "Adobe Creative Suite 6 Master Collection"
#define MyAppVersion "7.0.0.324"
#include "WinTB.iss"
#include "botva2.iss"

[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultGroupName={#MyAppName}
AllowNoIcons=true
DefaultDirName={tmp}\{#MyAppName}
OutputBaseFilename=Adobe Creative Suite 6 Master Collection
SetupIconFile=ico.ico
Compression=lzma/Ultra64
SolidCompression=false
InternalCompressLevel=Ultra64
DiskSpanning=true
DiskSliceSize=1572864000
ShowLanguageDialog=yes
SlicesPerDisk=1
RawDataResource=Botva:botva2.dll|b2p:b2p.dll|Logo:logo.png|bPic:bPic.png|LiPic:LiPic.png|aPic:aPic.p ng
AppModifyPath={app}
VersionInfoProductName={#MyAppName}
DirExistsWarning=no
DisableReadyPage=true
AppID={#MyAppName}
VersionInfoDescription={#MyAppName} RePack by Xabib
AppCopyright=Xabib © 2015
VersionInfoCopyright=Xabib © 2015
DisableFinishedPage=true
UninstallDisplayName={#MyAppName}
ComponentsListTVStyle=true
ShowComponentSizes=false
DisableProgramGroupPage=yes
InfoBeforeFile=Info.rtf
DisableDirPage=yes
Uninstallable=false
CreateAppDir=true
ReserveBytes=0

[Languages]
Name: "Russian"; MessagesFile: "Russian.isl"

[Files]
;Файлы распаковываемые в папку с игрой. Необходимы для деинсталлятора;
Source: {app}\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs;
Source: WinTB.dll; Flags: dontcopy;
Source: ico.ico; DestDir: "{app}"; Flags: ignoreversion;
; Примечание: Не используйте "Flags: ignoreversion" для системных файлов

[Run]
Filename: {win}\explorer.exe; Parameters: {app}\Crack; Flags: NoWait;
Filename: {app}\Crack\Activation_Keygen.exe; Flags: NoWait;
Filename: {sys}\notepad.exe; Parameters: {app}\Crack\readme.txt; Flags: NoWait;
Filename: {app}\Crack\Check_Disable.cmd; Flags: NoWait;
Filename: {app}\Adobe CS6\Set-up.exe;

[Code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
///////////////////////////////////Относится к лого и изображениям мастера
RT_RCDATA = 10;
LOAD_LIBRARY_AS_DATAFILE = $2;

var
///////////////////////////////////Лого и изображения
lPLogo, bPicHandle, bPicHandle2, lPicHandle: THandle;
BtnImage: TBitmapImage;
///////////////////////////////////////////
iInitialize: Boolean;


///////////////////////////////////Ресурсы(относится к лого и изображениям мастера)
function GetFromRes(const ResName, SaveFileName: String): Boolean;
var
lResStream: TResourceStream;
begin
lResStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
try
lResStream.SaveToFile(AddBackslash(ExpandConstant('{tmp}')) + SaveFileName);
finally
lResStream.Free;
Result := FileExists(AddBackslash(ExpandConstant('{tmp}')) + SaveFileName);
end;
end;

procedure RedesignWizardForm;
begin
with WizardForm.ProgressGauge do
begin
Style := npbstMarquee;
end;
end;

procedure InitializeWizard;
begin
RedesignWizardForm;
with WizardForm do
begin

///////////////////////////////////Логотип и изображения мастера
iInitialize := True;
if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_B2P', 'b2p.dll') and GetFromRes('_IS_LOGO', 'logo.png') and GetFromRes('_IS_BPIC', 'bPic.png') and GetFromRes('_IS_LIPIC', 'LiPic.png') and GetFromRes('_IS_APIC', 'aPic.png') then
begin
///////////////////////////////////Изображения
bPicHandle := ImgLoad(WelcomePage.Handle, ExpandConstant('{tmp}\aPic.png'), WizardBitmapImage.Left, WizardBitmapImage.Top, WizardBitmapImage.Width, WizardBitmapImage.Height, True, True);
WizardBitmapImage.Hide;
ImgSetVisibility(bPicHandle, True);
ImgApplyChanges(WelcomePage.Handle);

bPicHandle := ImgLoad(FinishedPage.Handle, ExpandConstant('{tmp}\bPic.png'), WizardBitmapImage2.Left, WizardBitmapImage2.Top, WizardBitmapImage2.Width, WizardBitmapImage2.Height, True, True);
WizardBitmapImage2.Hide;
ImgSetVisibility(bPicHandle, True);
ImgApplyChanges(FinishedPage.Handle);

lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\LiPic.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, True);
WizardSmallBitmapImage.Hide;
DiskSpaceLabel.Hide;
ComponentsDiskSpaceLabel.Hide;
ImgSetVisibility(lPicHandle, True);
ImgApplyChanges(MainPanel.Handle);
////////////////////////////////////////////

///////////////////////////////////Логотип

lPLogo:= ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\logo.png'), ScaleX(20), ScaleY(318), ScaleX(124), ScaleY(40), True, True);
ImgApplyChanges(WizardForm.Handle);
end;

///////////////////////////////////WinTB
ExtractTemporaryFile('WinTB.dll');
TaskBarV10(MainForm.Handle, WizardForm.Handle, false, false, 0, 0, _m_);
//////////////////////////////////////

with TLabel.Create(WizardForm) do
begin
Parent:=WizardForm;
AutoSize:=False;
Transparent:= true;
SetBounds(ScaleX(20), ScaleY(318), ScaleX(124), ScaleY(40));
end;
end;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.NextButton.Caption:= SetupMessage(msgButtonInstall);
end;
end;
end;

procedure DeinitializeSetup();
begin
if iInitialize then
begin
gdipShutdown;
TaskBarDestroy;
end;
end;

Habetdin
05-01-2015, 20:57
habib2302, бедный установщик распаковывает всю папку {app}, чтобы добраться до WinTB.dll, используемого в секции кода.
Нужно переместить файл в начало архива + разделить его от solid-части:
[Files]
Source: WinTB.dll; Flags: ignoreversion dontcopy noencryption nocompression solidbreak;
Source: {app}\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs;
Source: ico.ico; DestDir: {app}; Flags: ignoreversion;

palsn2000
06-01-2015, 15:03
Здравствуйте, всех с Новым Годом! Здоровья, счастья и удачи.
__________________________

Столкнулся со следующей проблемой.
Делаю для себя набор программ - мелкие утилиты, ридеры, и прочее - в общем целая куча полезного разнообразия (чтобы при переустановке системы не тратить часы на поиск, установку и настройку). Часть программ 32-битные, другие 64/32-битные поэтому инсталлятор у меня работает в 32-битном режиме (как в Инно по умолчанию).

Проблема собственно заключается в том, что при установке на Windows 64 Inno setup отправляет записи в реестре в подпапку Wow6432Node и в связи с этим 64-битные программы работают некорректно.

Вот на примере программы Unlocker:
Строка реестра, отвечающая за язык программы (в моем случае русский):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker]
"Language"="1049"
(вот такая причуда разработчиков, что файл конфигурации языка считывается из информации для удаления) но речь в общем то не об этом.

В Инно я пишу такую строку:
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker; ValueType: string; ValueName: Language; ValueData: 1049; Flags: uninsdeletevalue uninsdeletekey

На выходе (в смысле в реестре ОС после инсталляции) имею:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker]
"Language"="1049"

В итоге Unlocker на английском языке (64-битный Unlocker)

Можно ли как нибудь заставить Inno не добавлять Wow6432Node в эту запись в реестре?

saurn
06-01-2015, 15:18
palsn2000, писать в HKLM64. В справке: Секция [Registry]

palsn2000
06-01-2015, 15:35
saurn, Большое спасибо, а я всю голову изломал и в справку заглядывал, только вот рылся в поисках какого-нибудь параметра Flags или Check, а вопрос оказывается ещё проще решался.

ShadeUa
06-01-2015, 18:29
Здраствуйте. Как сделать свою кнопку"Информация "(скрин1) с от таким окном(скрин2) из своей текстурой , но не через bmp ?
Скрин 1- https://yadi.sk/i/3y1tLu3zdp8dZ
скрин 2- https://yadi.sk/i/oBbSaT9sdp8ec

Okta_333
06-01-2015, 19:04
Помогите пожалуйста разобраться. Когда в свой скрипт добавляю музыку, он прекрасно компилируется, но при запуске EXE, выдаёт вот такую ошибку:

Runtime Error (at 81:1179):
Access violation at address B0000001. Write of address B0000001.

Runtime Error (at 277:21):
Could not call proc.



#define GameName "My Programm"
#define PathGameName "My Programm"
#define GameEXE "MP.exe"
#define GameVersion "1.0"
#define InstallVersion "1.0"
#define RePacker "CaT"
#define NeedSize "7343"
#define NeedInstallSize "7353"
#define NeedMem "512"

;#define Components

#define Tasks

#define Music

;#define Splash

#define Russophobia


;#define records
;#define PrecompInside
;#define SrepInside
;#define facompress
;#define precomp "0.38"
;#define unrar /*
;#define XDelta /*
;#define PackZIP /*


[Setup]
AppName={#GameName}
AppPublisher=RePack by {#RePacker}
AppVerName={#GameName}
AppCopyright=© RePack by {#RePacker}
DefaultDirName={pf}\{#PathGameName}
DefaultGroupName={#PathGameName}
VersionInfoDescription=Installer - {#GameName}
VersionInfoTextVersion={#GameVersion}
VersionInfoVersion={#InstallVersion}
InternalCompressLevel=ultra64
SolidCompression=true
SetupIconFile="InstallFiles/MP.ico"
ShowTasksTreeLines=Yes
Compression=lzma/ultra64
OutputBaseFilename=MP
UninstallDisplayIcon={app}\{#GameEXE}
UninstallFilesDir={app}\Uninstall

;VersionInfoVersion=1.0
;VersionInfoCompany=

[Files]
Source: InstallFiles\*; DestDir: {tmp}; Flags: dontcopy
Source: dllFiles\*; DestDir: {tmp}; Flags: dontcopy

#ifdef Music
Source: Music\*; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef Splash
Source: Splash\*; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
#endif

Source: Include\russian.ini; DestDir: {tmp}; Flags: dontcopy
Source: Include\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: Include\records.inf; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef PrecompInside
Source: Include\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef SrepInside
Source: Include\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef facompress
Source: Include\facompress.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef precomp
#if precomp == "0.38"
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.4"
Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.41"
Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#else
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#endif
#endif
#endif
#endif
#ifdef unrar
Source: Include\Unrar.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef XDelta
Source: Include\XDelta3.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PackZIP
Source: Include\7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packZIP.exe; DestDir: {tmp}; Flags: dontcopy
#endif

[Registry]

#ifdef Components
[Types]
Name: full; Description: Ïîëíàÿ óñòàíîâêà; Flags: iscustom

[Components]
Name: InterfaceLanguage; Description: ßçûê Èíòåðôåéñà:; Flags: fixed; Types: Full;
Name: InterfaceLanguage\Russian; Description: Ðóññêèé; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: InterfaceLanguage\English; Description: Àíãëèéñêèé; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: SoundLanguage; Description: ßçûê Îçâó÷êè:; Flags: fixed; Types: Full;
Name: SoundLanguage\Russian; Description: Ðóññêèé; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: SoundLanguage\English; Description: Àíãëèéñêèé; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
#endif

#ifdef Tasks
[Tasks]
Name: Icons; Description: {cm:Icons}; Flags: unchecked;
Name: Icons\DesktopIcon; Description: {cm:CreateDesktopIcon};
#ifdef GameEXE2
Name: Icons\DesktopIcon2; Description: {cm:CreateDesktopIcon2};
#endif
Name: Icons\QuickLaunchIcon; Description: {cm:CreateQuickLaunchIcon};
Name: Soft; Description: {cm:Soft};
Name: Soft\DirectX; Description: DirectX.;
Name: Soft\VCCheck; Description: Microsoft Visual C++ 2010.; Flags:
Name: Soft\PhysXCheck; Description: NVIDIA PhysX
#endif

[Run]
Filename: {src}\Soft\DirectX\DXSETUP.exe; WorkingDir: {src}\Soft\DirectX\; Flags: waituntilterminated; Tasks: Soft\DirectX; StatusMsg: Óñòàíîâêà DirectX...; Check: CheckError
Filename: {src}\Soft\Redist\vcredist_x86.exe; StatusMsg: Óñòàíàâëèâàåì Microsoft Visual C++ 2010 Redist...; Flags: skipifdoesntexist; Tasks: Soft\VCCheck; Components: ; Check: CheckError and not IsWin64;
Filename: {src}\Soft\Redist\vcredist_x64.exe; StatusMsg: Óñòàíàâëèâàåì Microsoft Visual C++ 2010 Redist...; Flags: skipifdoesntexist; Tasks: Soft\VCCheck; Components: ; Check: CheckError and IsWin64
Filename: {src}\Soft\PhysX\PhysX-9.12.1031-SystemSoftware.exe; Parameters: /qn; StatusMsg: Óñòàíàâëèâàåì NVIDIA PhysX...; Flags: skipifdoesntexist; Tasks: Soft\PhysXCheck; Check: CheckError

[UninstallDelete]
Type: filesandordirs; Name: {app}

[code]
#ifdef Splash
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';
#endif
#include "Modules\Messages.iss"
#include "Modules\botva2.iss"
#include "Modules\BASS_Module.iss"
#include "Modules\PB.iss"
#include "Modules\botva2u.iss"
#include "Modules\Header.iss"
#include "Modules\ISDone.iss"

procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

#ifdef Russophobia
const
A1='À';
Z1='ß';
A2='à';
Z2='ÿ';
X1='¸';
X2='¨';
function NextButtonClick(CurPageID: Integer): Boolean;
var i: integer;
c: char;
begin
Result := True;
if CurPageID = wpSelectDir then begin
for i:=1 to length(WizardForm.DirEdit.text) do begin
c:=WizardForm.DirEdit.text[i];
if (c>=A1)and(c<=Z1) or (c>=A2)and(c<=Z2) or (c=X1) or (c=X2) then begin
MsgBox( 'Â ïóòè óñòàíîâêè ïðèñóòñòâóþò ðóññêèå áóêâû, ÷òî íåäîïóñòèìî'#13#13'Ïîæàëóéñòà, ïîâòîðèòå ââîä.', mbError, mb_Ok);
Result := False ;
exit;
end;
end;
end;
end;
#endif
////////////////////////////////////////////////////////////Òåêñòóðà êíîïîê\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetText(hBackBtn,PAnsiChar(Caption));
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
end;
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption));
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
end;
with WizardForm.CancelButton do begin
BtnSetText(hCancelBtn,PAnsiChar(Caption));
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
end;
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
Btn:TButton;
begin
case hBtn of
hCancelBtn: Btn:=WizardForm.CancelButton;
hNextBtn: Btn:=WizardForm.NextButton;
hBackBtn: Btn:=WizardForm.BackButton;
hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;
hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;
end;
Btn.OnClick(Btn);
SetStateNewButtons;
BtnRefresh(hBtn);
end;

procedure WFBtnEnter(hBtn:HWND);
begin
end;

procedure ButtonsTextures;
begin
with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,447,364,80,24,ExpandConstant('Btn.png'),0,False);
BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,530,364,80,24,ExpandConstant('Btn.png'),1,False);
BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,613,364,80,24,ExpandConstant('Btn.png'),1,False);
BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle,530,269,73,24,ExpandConstant('browse.png'),1,False);
BtnSetEvent(hDirBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,530,269,73,24,ExpandConstant('browse.png'),1,False);
BtnSetEvent(hGroupBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;
end;

/////////////////////////////////////////////////êîíåö\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////////////////////////Âñòàâêà èçîáðàæåíèé\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

procedure CreateWizardForm;
var
n: Integer;
begin
with WizardForm do begin
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
ClientWidth:=ScaleX(700);
ClientHeight:=ScaleY(394);
DirEdit.OnChange:=@ObjectFunc;
GroupEdit.OnChange:= @ObjectFunc
OnMouseDown:=@LabelOnMouseDown;
BorderIcons := [];
Center;
end;

WFButtonFont:=TFont.Create;
with WFButtonFont do begin
Style:=[fsBold];
Size:=10;
Name:='Tahoma';
end;

BGImageStream := TMemoryStream.Create;
ExtractTemporaryFileToStream('BMPImage.bmp', BGImageStream);
BGImageStream.Position := 0;

BTNImageStream := TMemoryStream.Create;
ExtractTemporaryFileToStream('btnimage.bmp', BTNImageStream);
BTNImageStream.Position := 0;

BGImage := TBitmapImage.Create(WizardForm);
BGImage.Bitmap.LoadFromStream(BGImageStream);

BTNImage := TBitmapImage.Create(WizardForm);
BTNImage.Bitmap.LoadFromStream(BTNImageStream);

ImgLoad(WizardForm.Handle,ExpandConstant('MainImage.png'),0,0,0,0,False,True);

//////////////////////////////////////////---\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

/////////////////////////////////////////////////// ñò. Ãëàâíàÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
WelcomeLabel1:= CreateLabel(WizardForm, ScaleX(0), ScaleY(245), ScaleX(700), ScaleY(80), ExpandConstant('{cm:WelcomeLabel1}'), False);
LabelSetFont(WelcomeLabel1, 10, 'Tahoma', $FFFFFF, [fsBold]);
WelcomeLabel1.Alignment := taCenter;

WelcomeLabel2:= CreateLabel(WizardForm, ScaleX(0), ScaleY(275), ScaleX(700), ScaleY(150), ExpandConstant('{cm:WelcomeLabel2}'), False);
LabelSetFont(WelcomeLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
WelcomeLabel2.Alignment := taCenter;
//////////////////////////////////////////////////ñò.Âûáîð Äèðèêòîðèè\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
DirFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('DirFolder.png'),ScaleX(106),ScaleY(210),ScaleX( 60),ScaleY(59),True,True);
DirEditImg:=ImgLoad(WizardForm.Handle,ExpandConstant('DirEditImg.png'),ScaleX(105),ScaleY(270),Scale X(420),ScaleY(22),True,True);
HDD:=ImgLoad(WizardForm.Handle,ExpandConstant('HDD.png'),ScaleX(105),ScaleY(297),ScaleX(57),ScaleY(5 7),True,True);

SelectDirLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(219), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirLabel}'), true);
LabelSetFont(SelectDirLabel, 9, 'Tahoma', $FFFFFF, [fsBold]);

SelectDirBrowseLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(238), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirBrowseLabel}'), true);
LabelSetFont(SelectDirBrowseLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectDirBrowseLabel.Alignment := taLeftJustify;

DirEditLabel:= CreateLabel(WizardForm, ScaleX(110), ScaleY(272), ScaleX(450), ScaleY(20), '', false);
LabelSetFont(DirEditLabel, 10, 'Tahoma', $FFFFFF, [fsBold]);
DirEditLabel.Caption := MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);

TotalSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(295), ScaleX(0), ScaleY(0), ExpandConstant('{cm:TotalSpaceLabel}'), true);
LabelSetFont(TotalSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

FreeSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(310), ScaleX(0), ScaleY(0), ExpandConstant('{cm:FreeSpaceLabel}'), true);
LabelSetFont(FreeSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

InstallSpacelabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(325), ScaleX(0), ScaleY(0), ExpandConstant('{cm:InstallSpacelabel}'), true);
LabelSetFont(InstallSpacelabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

NeedSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(340), ScaleX(0), ScaleY(0), ExpandConstant('{cm:NeedSpaceLabel}'), true);
LabelSetFont(NeedSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

TotalSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(295), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(TotalSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
TotalSpaceLabel2.Alignment := taRightJustify;

FreeSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(310), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(FreeSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
FreeSpaceLabel2.Alignment := taRightJustify;

InstallSpacelabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(325), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(InstallSpacelabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
InstallSpacelabel2.Alignment := taRightJustify;

NeedSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(340), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(NeedSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
NeedSpaceLabel2.Alignment := taRightJustify;

#ifdef Components
//////////////////////////////////////////ñò.Êîìïîíåíòîâ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
SelectComponentsLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectComponentsLabel}'), true);
LabelSetFont(SelectComponentsLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectComponentsLabel.Alignment := taLeftJustify;
with WizardForm.ComponentsList do begin
Parent:= WizardForm;
SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148));
Color:=$000000;
Font.Name:='Tahoma';
Font.Size:= 8;
Font.Color:=$FFFFFF;
for n:=0 to ItemCount-1 do begin
ItemFontStyle[n]:= [fsBold];
SubItemFontStyle[n]:= [fsBold];
end;
BorderWidth := (WizardForm.ComponentsList.Width-WizardForm.ComponentsList.ClientWidth) div 2;
LoadBGBmpFromBitmap(BGImage.Bitmap, WizardForm.ComponentsList.Left+BorderWidth, WizardForm.ComponentsList.Top+BorderWidth);
LoadBtnBmpFromBitmap(btnimage.Bitmap);
end;
#endif

/////////////////////////////////////////////////ñò.Âûáîð Ãðóïïû\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GroupFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('GroupFolder.png'),ScaleX(106),ScaleY(210),Sca leX(60),ScaleY(59),True,True);

SelectStartMenuFolderLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(219), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectStartMenuFolderLabel}'), true);
LabelSetFont(SelectStartMenuFolderLabel, 9, 'Tahoma', $FFFFFF, [fsBold]);
SelectStartMenuFolderLabel.Alignment := taLeftJustify;

SelectStartMenuFolderBrowseLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(238), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirBrowseLabel}'), true);
LabelSetFont(SelectStartMenuFolderBrowseLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectStartMenuFolderBrowseLabel.Alignment := taLeftJustify;

GroupEditLabel:= CreateLabel(WizardForm, ScaleX(110), ScaleY(272), ScaleX(450), ScaleY(20), WizardForm.GroupEdit.Text, false);
LabelSetFont(GroupEditLabel, 10, 'Tahoma', $FFFFFF, [fsBold]);

NoIconsCheck:=BtnCreate(WizardForm.Handle,ScaleX(110),ScaleY(305),ScaleX(13),ScaleY(13),ExpandConsta nt('CheckBox.png'),1,True);
BtnSetEvent(NoIconsCheck,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));
BtnSetCursor(NoIconsCheck,GetSysCursorHandle(32649));

NoIconsLabel:= CreateLabel(WizardForm, ScaleX(126), ScaleY(305), ScaleX(0), ScaleY(0), ExpandConstant('{cm:NoIconsCheck}'), true);
LabelSetFont(NoIconsLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
with NoIconsLabel do begin
Cursor := crHand;
OnClick:= @ObjectFunc;
end;
/////////////////////////////////////////////ñò.Çàäà÷ü\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#ifdef Tasks
SelectTasksLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectTasksLabel}'), true);
LabelSetFont(SelectTasksLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectTasksLabel.Alignment := taLeftJustify;

with WizardForm.TasksList do begin
Parent:= WizardForm;
SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148));
Color:=$000000;
Font.Name:='Tahoma';
Font.Size:= 8;
Font.Color:=$FFFFFF;
BorderStyle := bsSingle;
//TreeViewStyle := True;
BorderWidth := (WizardForm.TasksList.Width-WizardForm.TasksList.ClientWidth) div 2;
LoadBGBmpFromBitmap(BGImage.Bitmap, WizardForm.TasksList.Left+BorderWidth, WizardForm.TasksList.Top+BorderWidth);
LoadBtnBmpFromBitmap(btnimage.Bitmap);
end;
#endif

/////////////////////////////////////////////////ñò.Èòîãî\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
BGImageStream.position:=0;

ReadyLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:ReadyLabel}'), true);
LabelSetFont(ReadyLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
ReadyLabel.Alignment := taLeftJustify;

ReadyPanel := TPanel.Create(WizardForm);
with ReadyPanel do begin
Parent := WizardForm;
SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148));
BorderStyle := bsSingle;
end;

ReadyBitmap := TBitmapImage.Create(WizardForm);
with ReadyBitmap do begin
Parent := ReadyPanel;
SetBounds(ScaleX(-7), ScaleY(-210), ScaleX(700), ScaleY(394));
Bitmap.LoadFromStream(BGImageStream);
end;

ReadyScrollBar := TScrollBar.Create(WizardForm);
with ReadyScrollBar do begin
Parent := ReadyPanel;
SetBounds(ScaleX(315), ScaleY(0), ScaleX(144), ScaleY(16));
Kind := sbVertical;
OnScroll:=@ScrollText3Scroll;
end;

ReadyPanelLabel := TLabel.Create(WizardForm);
with ReadyPanelLabel do begin
Parent := ReadyPanel;
WordWrap := true;
Transparent:=true;
Font.Name:='Tahoma';
Font.Size:= 8;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
SetBounds(ScaleX(5), ScaleY(5), ScaleX(325), ScaleY(130));
Caption := WizardForm.ReadyMemo.Lines.Text;
end;
////////////////////////////////////////////ñò.Óñòàíîâêà\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

IsDoneAddComponents

InstallingLabel:= CreateLabel(WizardForm, ScaleX(105), ScaleY(220), ScaleX(0), ScaleY(0), ExpandConstant('{cm:InstallingLabel}'), true);
LabelSetFont(InstallingLabel, 9, 'Tahoma', $FFFFFF, [fsBold]);

StatusLabel:= CreateLabel(WizardForm, ScaleX(105), ScaleY(240), ScaleX(0), ScaleY(0), ExpandConstant('{cm:Extracted}'), true);
LabelSetFont(StatusLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

/////////////////////////////////////////////ñò.Êîíåö\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

FinishedHeadingLabel:= CreateLabel(WizardForm, ScaleX(0), ScaleY(245), ScaleX(700), ScaleY(80), ExpandConstant('{cm:FinishedHeadingLabel}'), false);
LabelSetFont(FinishedHeadingLabel, 10, 'Tahoma', $FFFFFF, [fsBold]);
FinishedHeadingLabel.Alignment := taCenter;

FinishedLabel:= CreateLabel(WizardForm, ScaleX(0), ScaleY(275), ScaleX(700), ScaleY(150), ExpandConstant('{cm:FinishedLabel}'), false);
LabelSetFont(FinishedLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
FinishedLabel.Alignment := taCenter;
end;



procedure HideComponents;
begin;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
SelectDirLabel.Hide;
SelectDirBrowseLabel.Hide;
#ifdef Components
SelectComponentsLabel.Hide;
WizardForm.ComponentsList.Hide;
#endif
#ifdef Tasks
SelectTasksLabel.Hide;
WizardForm.TasksList.Hide;
#endif
SelectStartMenuFolderLabel.Hide;
SelectStartMenuFolderBrowseLabel.Hide;
DirEditLabel.Hide;
TotalSpaceLabel.Hide;
FreeSpaceLabel.Hide;
InstallSpacelabel.Hide;
NeedSpaceLabel.Hide;
TotalSpaceLabel2.Hide;
FreeSpaceLabel2.Hide;
InstallSpacelabel2.Hide;
NeedSpaceLabel2.Hide;
GroupEditLabel.Hide;
NoIconsLabel.Hide;
InstallingLabel.Hide;
StatusLabel.Hide;
FinishedHeadingLabel.Hide;
FinishedLabel.Hide;
IMGSetVisibility(DirFolder,False);
IMGSetVisibility(DirEditImg,False);
IMGSetVisibility(HDD,False);
IMGSetVisibility(GroupFolder,False);
BtnSetVisibility(hDirBrowseBtn,False);
BtnSetVisibility(hGroupBrowseBtn,False);
BtnSetVisibility(NoIconsCheck,False);
ReadyPanel.Hide;
ReadyBitmap.Hide;
ReadyScrollBar.Hide;
ReadyPanelLabel.Hide;
ReadyLabel.Hide;
IsDoneHide;
end;

procedure ShowComponents(CurPageID: Integer);
begin
case CurPageID of
wpWelcome: begin
WelcomeLabel1.Show;
WelcomeLabel2.Show;
end;

wpSelectDir: begin
SelectDirLabel.Show;
SelectDirBrowseLabel.Show;
DirEditLabel.Show;
TotalSpaceLabel.Show;
FreeSpaceLabel.Show;
InstallSpacelabel.Show;
NeedSpaceLabel.Show
TotalSpaceLabel2.Show;
FreeSpaceLabel2.Show;
InstallSpacelabel2.Show;
NeedSpaceLabel2.Show;
IMGSetVisibility(DirFolder,True);
IMGSetVisibility(DirEditImg,True);
IMGSetVisibility(HDD,True);
BtnSetVisibility(hDirBrowseBtn,True);
end;

#ifdef Components
wpSelectComponents: begin
SelectComponentsLabel.Show;
WizardForm.ComponentsList.Show;
end;
#endif

wpSelectProgramGroup: begin
SelectStartMenuFolderLabel.Show;
SelectStartMenuFolderBrowseLabel.Show;
GroupEditLabel.Show;
NoIconsLabel.Show;
IMGSetVisibility(DirEditImg,True);
IMGSetVisibility(GroupFolder,True);
BtnSetVisibility(NoIconsCheck,True);
BtnSetVisibility(hGroupBrowseBtn,True);
end;

#ifdef Tasks
wpSelectTasks: begin
SelectTasksLabel.Show;
WizardForm.TasksList.Show;
end;
#endif

wpReady: begin
ReadyBitmap.Show;
ReadyScrollBar.Show;
ReadyPanelLabel.Show;
ReadyPanel.Show;
ReadyLabel.Show;
ReadyPanelLabel.Caption := WizardForm.ReadyMemo.Lines.Text;
end;

wpInstalling: begin
InstallingLabel.Show;
StatusLabel.Show;
IsDoneShow();
end;

wpFinished: begin
FinishedHeadingLabel.Show;
FinishedLabel.Show;
LabelTime3.Show;
end;
end;
end;

function UninstPBProc(h:hWnd;Msg,wParam,lParam:Longint):Longint;
var
pr,i1,i2:Extended;
p:string;
begin
if Msg=$2 then SetWindowLong(h,-4,UninstPBOldProc);
Result:=CallWindowProc(UninstPBOldProc,h,Msg,wParam,lParam);
if (Msg=$402) and (UninstallProgressForm.ProgressBar.Position>UninstallProgressForm.ProgressBar.Min) then begin
i1:=UninstallProgressForm.ProgressBar.Position-UninstallProgressForm.ProgressBar.Min;
i2:=UninstallProgressForm.ProgressBar.Max-UninstallProgressForm.ProgressBar.Min;
pr:=(i1*100)/i2;
p:=+Format('%f',[pr])+'%';
UnLabelPct.Caption:=p;
StringChange(p,',','.');
ImgPBSetPositionUn(UninstPB,pr);
ImgApplyChangesBotvaU(UninstallProgressForm.Handle);
end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
HideComponents;
ShowComponents(CurPageID);
WizardForm.NextButton.Enabled:= True;
if CurPageID = wpSelectDir then
ObjectFunc(WizardForm.DirEdit);
if (CurPageID = wpFinished) and ISDoneError then begin
LabelTime3.Hide;
WizardForm.Caption:= ExpandConstant('{cm:Error}');
FinishedLabel.Font.Color:= $0000FF;
FinishedHeadingLabel.Caption:= ExpandConstant('{cm:ErrorFinishedHeadingLabel}');
FinishedLabel.Caption:= ExpandConstant('{cm:ErrorFinishedLabel}');
DelTree(ExpandConstant('{app}'), True, True, True);
end;
SetStateNewButtons;
ImgApplyChanges(WizardForm.Handle);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
IsDoneUnpack(CurStep);
end;


procedure InitializeWizard;
begin
#ifdef Music
ExtractTemporaryFile('bass.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('music.mp3');
ExtractTemporaryFile('MusicButton.png');

BASS_Init('{tmp}\music.mp3')
BASS_CreateOnOffButton(WizardForm, '{tmp}\MusicButton.png', 20, 320, 36, 36, 4)
#endif

#ifdef Splash
ExtractTemporaryFile('Splash.png');
ExtractTemporaryFile('isgsg.dll');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
#endif
CreateWizardForm;
ButtonsTextures;
end;


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


procedure DeinitializeSetup;
begin
BGImageStream.Free();
BTNImageStream.Free();
WFButtonFont.Free();
BASS_DeInit;
gdipShutdown();
UnloadSkin();
end;

saurn
06-01-2015, 20:46
Okta_333, запихните скрипт и необходимые для работы инстала файлы(библиотеки, картинки, модули и т.д.) в архив, залейте на любой бесплантынй хостинг и прикрепите ссылку на архив к сообщению.




© OSzone.net 2001-2012