Код: procedure ShowSplashScreen(p1:HWND;p2:ansistring;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
» Inno Setup (создание инсталяционных пакетов)
Код: procedure ShowSplashScreen(p1:HWND;p2:ansistring;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
на инстал визард вылазиет ошибка
Цитата:
на инстал визард вылазиет ошибка
Цитата:
а еще до того, как пользоваться жойнером, неплохо сперва разобраться, как им пользоваться. тут небольшой обзор по правильному использованию.
всё теперь во всём разабрался благодарю.
кто может обьясник как правельно жойнером пользоваться?
ребята, обновите ссылки в разделе:
Дополнительные утилиты для Inno Setup
Ссылка на Inno IDE не рабочая.
Дополнительные утилиты для Inno Setup
Ссылка на Inno IDE не рабочая.
321new
Цитата:
проект закрыт....
Цитата:
Ссылка на Inno IDE не рабочая.
проект закрыт....
Цитата:
проект закрыт....
блин. ну тогда сотрите нерабочее что ли...
Всем доброго времени суток.
[more] [/more]
1) Можно ли перекрасить черную область выше белой линии?
2) Можно лм перекрасить саму белую линию?
3) Внизу окошка установщика точно такая же линия есть, можно ли ей сменить цвет?
[more] [/more]
1) Можно ли перекрасить черную область выше белой линии?
2) Можно лм перекрасить саму белую линию?
3) Внизу окошка установщика точно такая же линия есть, можно ли ей сменить цвет?
Nuclear_glare
1) - WizardForm.MainPanel.Color := твой цвет;
2) Нельзя.
3) Нельзя.
по 2 и 3 - эта линия - TBevel, у него нет свойства TColor
1) - WizardForm.MainPanel.Color := твой цвет;
2) Нельзя.
3) Нельзя.
по 2 и 3 - эта линия - TBevel, у него нет свойства TColor
Gnom3
It's so scripty! Спасибо огромное.
It's so scripty! Спасибо огромное.
Nuclear_glare
Цитата:
можно но это будут не bevel а картинки вот пример http://rghost.ru/40765982
Цитата:
Можно лм перекрасить саму белую линию?
можно но это будут не bevel а картинки вот пример http://rghost.ru/40765982
vint56
Тогда уж еще проще, без каких-либо картинок:
Код: procedure InitializeWizard();
begin
with TLabel.Create(WizardForm) do
begin
Parent := WizardForm;
Caption := '________________________________________________________________________________';
Font.Color := clRed;
SetBounds(ScaleX(7), ScaleY(313), ScaleX(480), ScaleY(13));
end;
end;
Тогда уж еще проще, без каких-либо картинок:
Код: procedure InitializeWizard();
begin
with TLabel.Create(WizardForm) do
begin
Parent := WizardForm;
Caption := '________________________________________________________________________________';
Font.Color := clRed;
SetBounds(ScaleX(7), ScaleY(313), ScaleX(480), ScaleY(13));
end;
end;
Gnom3 на тот момент что мне первое пришло в голову твой вариант с Label проще
321new
Скачиваешь Inno с сайта и в установщике ставишь установить InnoIDE
Так (хостинг искать было влом)
Скачиваешь Inno с сайта и в установщике ставишь установить InnoIDE
Так (хостинг искать было влом)
Всем привет.
Дайте плиз код, пример Сплэш картинки png для скрипта.
Заранее благодарен.
Дайте плиз код, пример Сплэш картинки png для скрипта.
Заранее благодарен.
Dark_Delphin лови
repacksman
Это библиотека.
А как реализовать сплеш заставку?
Добавлено:
repacksman
Ладно. Спасибо.
Я уже сделал)
Это библиотека.
А как реализовать сплеш заставку?
Добавлено:
repacksman
Ладно. Спасибо.
Я уже сделал)
Inno Setup 5.5.2
Установил, пробовал все 4 версии. Захожу в контекстное меню 'Help', получаю ошибку без описания. У кого как? WinXP SP3. На версии 5.5.1 все нормально. Пожалуй, подожду обновляться, мало ли, где там еще баги есть.
Установил, пробовал все 4 версии. Захожу в контекстное меню 'Help', получаю ошибку без описания. У кого как? WinXP SP3. На версии 5.5.1 все нормально. Пожалуй, подожду обновляться, мало ли, где там еще баги есть.
boss911
китайская версия на базе 5.5.1. Я убедился уже, что далеко не всегда можно ставить расширенную старой версии поверх стандартной новой версии, вполне возможно, что отсюда и ошибка. я получал глюки куда более веселые.
китайская версия на базе 5.5.1. Я убедился уже, что далеко не всегда можно ставить расширенную старой версии поверх стандартной новой версии, вполне возможно, что отсюда и ошибка. я получал глюки куда более веселые.
Как-как называется процедура, ловящая обновления ProgressGauge?
Gnom3
Так у меня так себя ведет оф. 5.5.2 сборка, пробовал ANSI и Unicode, обычную и QuickStart Pack. Вечером перекачал установщик, теперь все нормально. Видимо они пофиксили и тихо переложили дистрибутив.
Так у меня так себя ведет оф. 5.5.2 сборка, пробовал ANSI и Unicode, обычную и QuickStart Pack. Вечером перекачал установщик, теперь все нормально. Видимо они пофиксили и тихо переложили дистрибутив.
Как в скрипте на основе isdone прописать чтобы после извлечения архивов все данные из папки .../Data/Data1/ перенеслись в основной каталог .../Data/, а сама папка Data1 затем была удалена?
Dark_Delphin
Если трудности есть то можно и через Inno Setup Game Script Generator сделать сплеш-заставку.
Gnom3
vint56
Спасибо!
Добавлено:
Скажите пожалуйста, какой размер шрифта идет по умолчанию в Inno?
Если трудности есть то можно и через Inno Setup Game Script Generator сделать сплеш-заставку.
Gnom3
vint56
Спасибо!
Добавлено:
Скажите пожалуйста, какой размер шрифта идет по умолчанию в Inno?
Nuclear_glare, шрифт чего именно?)
Так вот имеется скрипт [more]#define MyAppName "Assosins Creed bla-bla-bla"
#define NeedSize 6100
#define NeedMem 512
///с компонентами и без
#define Components
////с слайдами или просто с картинкой
;#define Slides
#define Image
/////////////////////////////////////
;#define records
;#define facompress
;#define PrecompInside
#define SrepInside
;#define MSCInside //на будущее
;#define precomp "0.42"
#define unrar
;#define XDelta
;#define PackZIP
[Setup]
AppName={#MyAppName}
AppVersion=2.0
AppPublisher=dvd4el
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma2/ultra64
SolidCompression=true
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
//Name: eng; MessagesFile: compiler:Languages\English.isl
[Files]
Source: dll\b2p.dll; Flags: dontcopy
Source: dll\botva2.dll; Flags: dontcopy
Source: dll\gdiplus.dll; Flags: dontcopy
Source: dll\isSlideShow.dll; Flags: dontcopy
Source: dll\InnoCallback.dll; Flags: dontcopy
#ifdef Slides
Source: SlidesFiles\*; Flags: dontcopy
#endif
#ifdef Image
Source: Files\fonAC.jpg; Flags: dontcopy
#endif
Source: Files\about.png; Flags: dontcopy
Source: Files\aboutlog.png; Flags: dontcopy
Source: Files\Button.png; Flags: dontcopy
Source: Files\cb.png; Flags: dontcopy
Source: Files\dir.png; Flags: dontcopy
Source: Files\edit.png; Flags: dontcopy
Source: Files\exit.png; Flags: dontcopy
Source: Files\group.png; Flags: dontcopy
Source: Files\min.png; Flags: dontcopy
Source: Files\pb.png; Flags: dontcopy
Source: Files\pb1.png; Flags: dontcopy
Source: Files\tasks.png; Flags: dontcopy
Source: Files\t&c.bmp; Flags: dontcopy
Source: Files\ready.png; Flags: dontcopy
#ifdef Components
Source: Files\work1.jpg; Flags: dontcopy
Source: Files\work2.jpg; Flags: dontcopy
Source: Files\work3.jpg; Flags: dontcopy
Source: Files\work4.jpg; Flags: dontcopy
Source: Files\work5.jpg; Flags: dontcopy
Source: Files\work6.jpg; Flags: dontcopy
Source: Files\work7.jpg; Flags: dontcopy
Source: Files\work8.jpg; Flags: dontcopy
Source: Files\workerror.jpg; Flags: dontcopy
#else
Source: Files\2work1.jpg; Flags: dontcopy
Source: Files\2work2.jpg; Flags: dontcopy
Source: Files\2work3.jpg; Flags: dontcopy
Source: Files\2work4.jpg; Flags: dontcopy
Source: Files\2work5.jpg; Flags: dontcopy
Source: Files\2work6.jpg; Flags: dontcopy
Source: Files\2work7.jpg; Flags: dontcopy
Source: Files\2workerror.jpg; Flags: dontcopy
#endif
Source: ISDone\English.ini; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: records.inf; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PrecompInside
Source: ISDone\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef SrepInside
Source: ISDone\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef MSCInside
Source: ISDone\CLS-MSC.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef facompress
Source: ISDone\facompress.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef precomp
#if precomp == "0.38"
; Source: ISDone\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.4"
; Source: ISDone\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.41"
; Source: ISDone\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.42"
; Source: ISDone\precomp042.exe; DestDir: {tmp}; Flags: dontcopy
#else
; Source: ISDone\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
; Source: ISDone\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
; Source: ISDone\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
; Source: ISDone\precomp042.exe; DestDir: {tmp}; Flags: dontcopy
#endif
#endif
#endif
#endif
#endif
#ifdef unrar
Source: ISDone\Unrar.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef XDelta
Source: ISDone\XDelta3.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PackZIP
Source: ISDone\7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\packZIP.exe; DestDir: {tmp}; Flags: dontcopy
#endif
[CustomMessages]
rus.Welcome1=Вас приветствует Мастер установки игры %n«{#MyAppName}»
rus.Welcome2=Рекомендуется закрыть антивирусные программы, а также все прочие приложения перед тем, как продолжить.%n%nНажмите «Далее», чтобы продолжить, или «Отмена», чтобы выйти из программы установки.
rus.Dir1=Программа установит «{#MyAppName}» в следующую папку.
rus.Dir2=Нажмите «Далее», чтобы продолжить. Если Вы хотите выбрать другую папку, нажмите «Обзор».
rus.Group1=Программа создаст ярлыки в следующей папке меню «Пуск».
rus.FreeSpace=Доступно места на диске:.....
rus.NeedSpace=Требуется места для установки:.....
rus.AfterInstallSpace=После установки игра займет:.....
rus.nic=Не создавать папку в меню «Пуск»
rus.Comp=Выберите компоненты, которые Вы хотите установить; %nснимите флажки с компонентов, устанавливать которые не требуется. %nНажмите «Далее», когда Вы будете готовы продолжить.
rus.dop=Выберите дополнительные задачи, которые необходимо выполнить
rus.ic=Добавить ярлык на рабочий стол
rus.Fin1=Установка игры «{#MyAppName}» %nуспешно завершена
rus.Fin2=%n%nДля ее запуска выберите соответствующий ярлык в меню "Пуск" %nили на Рабочем столе. %n%nНажмите "Завершить", чтобы выйти из программы установки.
rus.ExtractedFile=Извлекается файл:
rus.Extracted=Установка...
rus.Error=Ошибка распаковки!
rus.ElapsedTime=Прошло:
rus.RemainingTime=Осталось времени:
rus.rbc=Откат установки...
rus.p=Прогресс:
rus.exit=Выход
rus.Error1=Установка игры «{#MyAppName}» не завершена.
rus.Error2=%nВо время установки произошла ошибка, пожалуйста отключите сторонние программы и повторите попытку установки. %n%nНажмите «Завершить», чтобы выйти из программы установки.
rus.DX=Обновить DirectX
rus.VC=Установить Microsoft Visual C++
rus.ready1=Программа установки готова начать установку «{#MyAppName}» на Ваш компьютер.
rus.ready2=Информация:
rus.ready3=Игра будет установлена в
rus.ready4=Папка в меню пуск
rus.ready5=Будет создан ярлык на рабочем столе
rus.ready6=Ярлык на рабочем столе создан не будет
rus.doppo=Установить дополнительное программное обеспечение
rus.ready7=Будет установлено дополнительное программное обеспечение
rus.ready8=Дополнительное программное обеспечение установлено не будет
[Icons]
Name: {userdesktop}\{#MyAppName}; Filename: {app}\Data\Engine\KapowMulti.exe; WorkingDir: {app}; IconFilename: {app}\Data\Engine\KapowMulti.exe; Check: CheckError and IconsChecks
Name: {group}\{cm:UninstallProgram}; Filename: {uninstallexe}; Check: CheckError
[Run]
Filename: {src}\Redist\dxwebsetup.exe; WorkingDir: {src}\Redist\; Flags: waituntilterminated; Check: CheckError and DpoChecks
Filename: {src}\Redist\vcredist_x86.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: not IsWin64 and CheckError and DpoChecks
Filename: {src}\Redist\vcredist_x64.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: IsWin64 and CheckError and DpoChecks
[Tasks]
Name: VCCheck; Description: Установить Microsoft Visual C++ 2005 Redist
#ifdef Components
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive
Name: text\eng; Description: Английский; Flags: exclusive
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive
Name: voice\eng; Description: Английский; Flags: exclusive
#endif
[UninstallDelete]
Type: filesandordirs; Name: {app}
[Code]
const
PCFonFLY = true;
notPCFonFLY = false;
VK_ESCAPE = 27;
var
img1, img2: longint;
Cancel: Integer;
Error: Boolean;
ISDoneError: Boolean;
PCFVer: Double;
edit, dir, group, work1, work2, work3, work4, work5, work6, work7, work8, workerror, tasks, ready: Longint;
hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, Min, CloseBtn, nic, IconsCheck, CancelBtn, MinBtn, AboutBtn, dpo: HWND;
WFButtonFont: TFont;
UpdBtn, UpdTasks: TTimer;
WelcomeLabel1, MainLabel, WelcomeLabel2, dir1, IconsCheckLbl,
NeedSpaceLabel, Dir1Label, FreeSpaceLabel, niclabel, doplbl, Pct, CurrFileName, Time1, Time2, i, dxlbl, vclbl, complbl, ready0, ready1, ready2, ready3, ready4, ready5, ready6, ready7, ready8, ready9, dpolbl: TLabel;
FreeMB, TotalMB: Cardinal;
SizeInt: Longint;
Enabled: Boolean;
LogoForm: TForm; closebnt: HWND;
TimerID: LongWord;
CurrentPicture:integer;
PicList: TStringlist;
imgpanel: tpanel;
#include "AddIss\botva2.iss"
#include "AddIss\progressbar.iss"
var pb: TImgPB;
function ReleaseCapture: Longint; external 'ReleaseCapture@user32.dll stdcall';
///
type
TCallback = function (OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
function GetKeyState(nVirtKey: Integer): ShortInt; external 'GetKeyState@user32 stdcall delayload';
function WrapCallback(callback: TCallback; paramcount: Integer): longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';
function ISArcExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean):boolean; external 'ISArcExtract@files:ISDone.dll stdcall delayload';
function IS7ZipExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'IS7zipExtract@files:ISDone.dll stdcall delayload';
function ISRarExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'ISRarExtract@files:ISDone.dll stdcall delayload';
function ISPrecompExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISPrecompExtract@files:ISDone.dll stdcall delayload';
function ISSRepExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISSrepExtract@files:ISDone.dll stdcall delayload';
function ISxDeltaExtract(CurComponent:Cardinal; PctOfTotal:double; minRAM,maxRAM:integer; InName, DiffFile, OutFile: AnsiString; DeleteInFile, DeleteDiffFile:boolean):boolean; external 'ISxDeltaExtract@files:ISDone.dll stdcall delayload';
function ISPackZIP(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString;ComprLvl:integer; DeleteInFile:boolean):boolean; external 'ISPackZIP@files:ISDone.dll stdcall delayload';
function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):boolean; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall delayload';
function Exec2 (FileName, Param: PAnsiChar;Show:boolean):boolean; external 'Exec2@files:ISDone.dll stdcall delayload';
function ISFindFiles(CurComponent:Cardinal; FileMask:AnsiString; var ColFiles:integer):integer; external 'ISFindFiles@files:ISDone.dll stdcall delayload';
function ISPickFilename(FindHandle:integer; OutPath:AnsiString; var CurIndex:integer; DeleteInFile:boolean):boolean; external 'ISPickFilename@files:ISDone.dll stdcall delayload';
function ISGetName(TypeStr:integer):PAnsichar; external 'ISGetName@files:ISDone.dll stdcall delayload';
function ISFindFree(FindHandle:integer):boolean; external 'ISFindFree@files:ISDone.dll stdcall delayload';
function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString;Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
function SrepInit(TmpPath:PAnsiChar;VirtMem,MaxSave:Cardinal):boolean; external 'SrepInit@files:ISDone.dll stdcall delayload';
function PrecompInit(TmpPath:PAnsiChar;VirtMem:cardinal;PrecompVers:single):boolean; external 'PrecompInit@files:ISDone.dll stdcall delayload';
function FileSearchInit(RecursiveSubDir: Boolean): Boolean; external 'FileSearchInit@files:ISDone.dll stdcall delayload';
function ISDoneInit(RecordFileName:AnsiString; TimeType,Comp1,Comp2,Comp3:Cardinal; WinHandle, NeededMem:longint; callback:TCallback):boolean; external 'ISDoneInit@files:ISDone.dll stdcall';
function ISDoneStop: Boolean; external 'ISDoneStop@files:ISDone.dll stdcall';
function ChangeLanguage(Language: AnsiString): Boolean; external 'ChangeLanguage@files:ISDone.dll stdcall delayload';
function SuspendProc: Boolean; external 'SuspendProc@files:ISDone.dll stdcall';
function ResumeProc: Boolean; external 'ResumeProc@files:ISDone.dll stdcall';
///
#ifdef Slides
function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeSlideShow(Hwnd:Thandle; l,t,w,h:integer;Animate:boolean; Stretch:integer); external 'InitializeSlideShow@files:isslideshow.dll stdcall';
procedure DeinitializeSlideShow; external 'DeinitializeSlideShow@files:isslideshow.dll stdcall';
procedure ShowImage_(file_: PAnsiChar; effect_: longint); external 'ShowImage@files:isslideshow.dll stdcall';
#endif
////
procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0)
end;
function ProgressCallback(OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;
begin
if (GetKeyState(VK_ESCAPE) < 0) then begin if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1; end;
if OveralPct<=1000 then ImgPBSetPosition(pb, OveralPct);
Pct.Caption := ExpandConstant('{cm:p} ')+IntToStr(OveralPct div 10)+'.'+chr(48 + OveralPct mod 10)+'%';
CurrFileName.Caption:=ExpandConstant('{cm:ExtractedFile} ')+MinimizePathName(CurrentFile, CurrFileName.Font, CurrFileName.Width-ScaleX(100));
Time1.Caption:=ExpandConstant('{cm:ElapsedTime} ')+TimeStr2;
Time2.Caption:=ExpandConstant('{cm:RemainingTime} ')+TimeStr1;
Result := Cancel;
end;
function IconsChecks: Boolean;
begin
Result:= BtnGetChecked(IconsCheck);
end;
function DpoChecks: Boolean;
begin
Result:= BtnGetChecked(dpo);
end;
procedure CancelButtonOnClick(h: HWND);
begin
SuspendProc;
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1;
ResumeProc;
end;
function cm(s: PAnsiChar): String;
begin
Result:= ExpandConstant('{cm:'+s+'}');
end;
#ifdef Slides
procedure ShowImage(file: string);
begin
if Pos(ExpandConstant('{tmp}\'), File)>0 then StringChange(File, ExpandConstant('{tmp}\'), '');
if Pos('{tmp}\', File)>0 then StringChange(File, '{tmp}\', '');
ExtractTemporaryFile(file);
ShowImage_(ExpandConstant('{tmp}\'+File), 1);
DeleteFile(ExpandConstant('{tmp}\'+File));
end;
#endif
procedure HideControls;
begin
Pct.Hide; i.Hide; CurrFileName.Hide; Time1.Hide; Time2.Hide; ImgPBDelete(pb);
if Error then begin i.Show; i.Caption:= cm('rbc'); end;
end;
procedure CreateControls;
begin
Pct := TLabel.Create(WizardForm);
with Pct do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Left:= ScaleX(55);
Top:= ScaleY(420);
Width:= ScaleX(180);
Transparent:= true;
BringToFront;
end;
CurrFileName := TLabel.Create(WizardForm);
with CurrFileName do begin
Parent:= WizardForm;
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
AutoSize:= false;
Width:= ScaleX(300);
Left:= ScaleX(55);
Top:= ScaleY(375);
Transparent:= true;
end;
Time1 := TLabel.Create(WizardForm);
with Time1 do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Width:= ScaleX(200);
Left:= ScaleX(55);
Top:= ScaleY(390);
Transparent:= true;
end;
Time2 := TLabel.Create(WizardForm);
with Time2 do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Width:= Time1.Width+ScaleX(40);
Left:= ScaleX(55);
Top:= Time1.Top+ScaleY(15);
Transparent:= true;
end;
i := TLabel.Create(WizardForm);
with i do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Width:= Time1.Width+ScaleX(40);
Left:= ScaleX(55);
Top:= ScaleY(360);
Transparent:= true;
Caption:= cm('Extracted');
end;
end;
function CheckError: Boolean;
begin
Result:= not Error;
end;
///
procedure FrameMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
WizardForm.SetFocus;
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0);
end;
function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\gdiplus.dll')) then ExtractTemporaryFile('gdiplus.dll');
Result:=True;
end;
//************************************************ [Начало - Загрузка изображений и подготовка визарда] ***************************************************//
procedure CreateWizardImg;
begin
with WizardForm do begin
BorderStyle := bsNone;
ClientWidth:=ScaleX(733);
ClientHeight:=ScaleY(506);
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
Center;
Color:= $191919;
end;
#ifdef Slides
imgPanel := TPanel.Create(WizardForm);
imgPanel.Top := ScaleY(73);
imgPanel.Left := ScaleX(19);
imgPanel.Width := ScaleX(695);
imgPanel.Height := ScaleY(225);
imgPanel.BevelOuter := bvNone;
imgPanel.Parent := WizardForm;
InitializeSlideShow(imgPanel.Handle, ScaleX(0), ScaleY(0), ScaleX(695), ScaleY(225), true, 8);
#endif
#ifdef Components
work1:= ImgLoad(WizardForm.handle, ExpandConstant('work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work2:= ImgLoad(WizardForm.handle, ExpandConstant('work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work3:= ImgLoad(WizardForm.handle, ExpandConstant('work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work4:= ImgLoad(WizardForm.handle, ExpandConstant('work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work5:= ImgLoad(WizardForm.handle, ExpandConstant('work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work6:= ImgLoad(WizardForm.handle, ExpandConstant('work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work7:= ImgLoad(WizardForm.handle, ExpandConstant('work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work8:= ImgLoad(WizardForm.handle, ExpandConstant('work8.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
workerror:= ImgLoad(WizardForm.handle, ExpandConstant('workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
#else
work1:= ImgLoad(WizardForm.handle, ExpandConstant('2work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work2:= ImgLoad(WizardForm.handle, ExpandConstant('2work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work3:= ImgLoad(WizardForm.handle, ExpandConstant('2work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work4:= ImgLoad(WizardForm.handle, ExpandConstant('2work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work5:= ImgLoad(WizardForm.handle, ExpandConstant('2work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work6:= ImgLoad(WizardForm.handle, ExpandConstant('2work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work7:= ImgLoad(WizardForm.handle, ExpandConstant('2work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
workerror:= ImgLoad(WizardForm.handle, ExpandConstant('2workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
#endif
#ifdef Image
ImgLoad(WizardForm.handle, ExpandConstant('fonAC.jpg'), ScaleX(19), ScaleY(73), ScaleX(695), ScaleY(225), True, True);
#endif
edit:= ImgLoad(WizardForm.handle, ExpandConstant('edit.png'), ScaleX(145), ScaleY(380), ScaleX(328), ScaleY(24), True, True);
ready:= ImgLoad(WizardForm.handle, ExpandConstant('ready.png'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
dir:= ImgLoad(WizardForm.handle, ExpandConstant('dir.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);
group:= ImgLoad(WizardForm.handle, ExpandConstant('group.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);
tasks:= ImgLoad(WizardForm.handle, ExpandConstant('tasks.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);
ImgApplyChanges(WizardForm.Handle);
end;
//************************************************ [Конец - Загрузка изображений и подготовка визарда] ***************************************************//
//************************************************ [Начало - Текстуры кнопок] ***************************************************//
procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetText(hBackBtn,PAnsiChar(Caption));
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
BtnRefresh(hBackBtn);
end;
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption));
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
BtnRefresh(hNextBtn);
end;
with WizardForm.CancelButton do begin
BtnSetText(hCancelBtn, PAnsiChar(cm('exit')));
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
BtnRefresh(hCancelBtn);
end;
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;
procedure TimerRefreshBtn(S: TObject);
begin
BtnRefresh(hBackBtn);
BtnRefresh(hNextBtn);
BtnRefresh(hCancelBtn);
BtnRefresh(hDirBrowseBtn);
BtnRefresh(hGroupBrowseBtn);
if BtnGetChecked(nic) then ready3.Caption:= cm('ready4') + ': ' + '-- --' else ready3.Caption:= cm('ready4') + ': ' + WizardForm.GroupEdit.Text;
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 MinimizeBtnClick(h: HWND);
begin
WizardForm.SetFocus;
ReleaseCapture;
SendMessage(WizardForm.Handle,$112,61472,0);
end;
procedure CancelBtnClick(h: HWND);
begin
WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
end;
procedure CancelBtnClick1(h: HWND);
begin
LogoForm.Hide;
BtnSetEnabled(AboutBtn, not LogoForm.Visible);
end;
procedure NoIconsClick(hBtn: HWND);
var
Check:boolean;
begin
Check:= BtnGetChecked(hBtn);
BtnSetEnabled(hGroupBrowseBtn, not Check);
WizardForm.GroupEdit.Enabled:= not Check;
WizardForm.NoIconsCheck.Checked:= Check;
WizardForm.GroupEdit.Color:= $ffffff;
end;
procedure DpoOnClick(hBtn: TObject);
begin
BtnSetChecked(dpo, not BtnGetChecked(dpo));
if BtnGetChecked(dpo) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;
end;
procedure DpoOnClick1(hBtn: HWND);
begin
if BtnGetChecked(hBtn) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;
end;
procedure AboutClick(hBtn: HWND);
var ok: HWND;
begin
closebnt:= BtnCreate(LogoForm.Handle, ScaleX(473 - 20), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);
BtnSetEvent(closebnt, BtnClickEventID,WrapBtnCallback(@CancelBtnClick1, 1));
ok:=BtnCreate(LogoForm.Handle, ScaleX(373), ScaleY(403), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(ok,BtnClickEventID,WrapBtnCallback(@CancelBtnClick1,1));
BtnSetFont(ok,WFButtonFont.Handle);
BtnSetFontColor(ok, $363636, $363636, $363636, clgray);
BtnSetText(ok,'OK');
ImgLoad(LogoForm.Handle, 'aboutlog.png', 0, 0, ScaleX(473), ScaleY(440), true, true);
LogoForm.Show;
BtnSetEnabled(AboutBtn, not LogoForm.Visible);
ImgApplyChanges(LogoForm.Handle);
end;
procedure IconsClick(hBtn: HWND);
var Check: Boolean;
begin
if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;
end;
procedure nicOnClick(Sender: TObject);
begin
BtnSetChecked(nic, not BtnGetChecked(nic));
NoIconsClick(nic);
end;
procedure IconsOnClick(Sender: TObject);
begin
BtnSetChecked(IconsCheck, not BtnGetChecked(IconsCheck));
if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;
end;
procedure ButtonsTextures;
begin
WFButtonFont:=TFont.Create;
WFButtonFont.Name:= 'Tahoma';
WFButtonFont.Size:= 9;
WFButtonFont.Color:= $363636;
with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle, ScaleX(500), ScaleY(470), ScaleX(93), ScaleY(33), 'button.png', 5, False);
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle, ScaleX(400), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(620), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
CancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(717), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);
BtnSetEvent(CancelBtn, BtnClickEventID,WrapBtnCallback(@CancelBtnClick,1));
BtnSetFont(CancelBtn, WFButtonFont.Handle);
BtnSetText(CancelBtn,'');
MinBtn:=BtnCreate(WizardForm.Handle, ScaleX(704), ScaleY(4), ScaleX(8), ScaleY(33), ExpandConstant('min.png'), 1, false);
BtnSetEvent(MinBtn, BtnClickEventID,WrapBtnCallback(@MinimizeBtnClick,1));
AboutBtn:=BtnCreate(WizardForm.Handle, ScaleX(20), ScaleY(470), ScaleX(29), ScaleY(35), ExpandConstant('about.png'), 5, false);
BtnSetChecked(AboutBtn, true);
BtnSetEvent(AboutBtn, BtnClickEventID,WrapBtnCallback(@AboutClick,1));
with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
nic:=BtnCreate(WizardForm.Handle, ScaleX(140),ScaleY(405), ScaleX(30),ScaleY(30), ExpandConstant('cb.png'), 1, true);
BtnSetChecked(nic, false);
BtnSetEvent(nic,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));
IconsCheck:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(380), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);
BtnSetChecked(IconsCheck, true);
BtnSetEvent(IconsCheck, BtnClickEventID, WrapBtnCallback(@IconsClick, 1));
dpo:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(410), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);
BtnSetChecked(dpo, true);
BtnSetEvent(dpo, BtnClickEventID, WrapBtnCallback(@DpoOnClick1, 1));
end;
//************************************************ [Конец - Текстуры кнопок] ***************************************************//
//************************************************[Начало - Проверка места на диске]*************************************************************//
Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', ',');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = ',')) and (Pos(',', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;
function CompareNum(FirstNum, SecondNum: Integer): Boolean;
begin
if FirstNum < SecondNum then Result:= False else Result:= True;
end;
Function MbOrTb(Byte: Extended): AnsiString;
begin
if Byte < 1024 then Result:= NumToStr(Byte) + ' MB' else
if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' GB' else
Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' TB'
end;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: AnsiString; gsod: Boolean;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
gsod:= GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if gsod then begin
FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTB(FreeMb) + ' (' + IntToStr((FreeMb*100) div TotalMB) + ' %)';
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt);
BtnSetEnabled(hNextBtn, true);
WizardForm.NextButton.Enabled:= true;
end else
if not gsod then begin
FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} 0 MB');
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt)
BtnSetEnabled(hNextBtn, false);
WizardForm.NextButton.Enabled:= false;
Exit;
end;
ready2.Caption:=ready2.Caption + ': ' + WizardForm.DirEdit.Text;
end;
procedure NeedSpace;
begin
SizeInt:= {#NeedSize}
FreeSpaceLabel := TLabel.Create(WizardForm);
FreeSpaceLabel.SetBounds(ScaleX(145), ScaleY(410), ScaleX(209), ScaleY(13))
FreeSpaceLabel.Parent := WizardForm;
FreeSpaceLabel.Font.Name:='Arial';
FreeSpaceLabel.Font.Size:= 8;
FreeSpaceLabel.Font.Color:= $363636;
FreeSpaceLabel.Transparent:=true;
FreeSpaceLabel.Font.Style := [fsBold];
NeedSpaceLabel := TLabel.Create(WizardForm);
NeedSpaceLabel.SetBounds(ScaleX(145), ScaleY(430), ScaleX(209), ScaleY(13))
NeedSpaceLabel.Parent := WizardForm;
NeedSpaceLabel.Font.Name:='Arial';
NeedSpaceLabel.Font.Size:= 8;
NeedSpaceLabel.Font.Color:= $363636;
NeedSpaceLabel.Transparent:=true;
NeedSpaceLabel.Font.Style:= [fsBold];
WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;
end;
//************************************************[Конец - Проверка места на диске]*************************************************************//
//************************************************ [Начало - Создание лебелов] ***************************************************//
procedure CreateLabel;
begin
//Без этого кнопки нормально не перерисовываются, если запустить сетап и при этом навести курсор на кнопку.
UpdBtn:= TTimer.Create(nil);
UpdBtn.Interval:= 1;
UpdBtn.OnTimer:= @TimerRefreshBtn;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
MainLabel:= TLabel.Create(WizardForm);
with MainLabel do
begin
Left:= ScaleX(0);
Top:= ScaleY(7);
Width:= ScaleX(752);
Height:= ScaleY(34);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Corbel';
Alignment:= taCenter;
Font.Size:= 10;
Font.Color:= $aeacac;
Font.Style := [fsBold];
Parent:= WizardForm;
OnMouseDown:=@LabelOnMouseDown;
Caption:= WizardForm.Caption;
end;
//Welcome
WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
Left:= ScaleX(140);
Top:= ScaleY(330);
Width:= ScaleX(450);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Arial';
Font.Size:= 10;
Font.Color:=$363636;
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= cm('Welcome1');
end;
WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
Left:= ScaleX(140);
Top:= ScaleY(370);;
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:='Arial';
Font.Size:= 9;
Font.Color:=$363636;
Alignment := taCenter;
Font.Style := [fsBold];
Transparent:= true;
Parent:= WizardForm;
Caption:= cm('Welcome2');
end;
//SelectDir
with WizardForm.DirEdit do begin
Parent:= WizardForm;
Left:= ScaleX(148);
Top:= ScaleY(384);
BorderStyle:= bsNone;
Color:= $ffffff;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:= $363636;
Width:= ScaleX(324);
Height:= ScaleY(18);
end;
with WizardForm.GroupEdit do begin
Parent:= WizardForm;
Left:= ScaleX(148);
Top:= ScaleY(384);
BorderStyle:= bsNone;
Color:= $ffffff;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:= $363636;
Width:= ScaleX(324);
Height:= ScaleY(18);
end;
dir1:=TLabel.Create(WizardForm);
with dir1 do
begin
Left:= ScaleX(300);
Top:= ScaleY(480);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
Caption:= cm('dir1');
end;
/////////////////////////
niclabel:=TLabel.Create(WizardForm);
with niclabel do
begin
Left:= ScaleX(170);
Top:= ScaleY(412);
Width:= ScaleX(250);
Height:= ScaleY(16);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('nic');
OnClick:= @nicOnClick;
end;
/////////////////////////////////
ExtractTemporaryFile('t&c.bmp');
with WizardForm.ComponentsList do begin
Left:= ScaleX(435);
Top:= ScaleY(330);
Width:= ScaleX(275);
Height:= ScaleY(110);
Color:= WizardForm.Color;
Font.Color:= $363636;
Font.Style:= [fsBold];
Font.Size:= 8;
Font.Name:= 'Arial'
BorderStyle:= bsSingle;
Font.Color:= $363636;
LoadBGBmpFromFile(ExpandConstant('{tmp}\t&c.bmp'), 0, 0);
Parent:= WizardForm;
end;
complbl:=TLabel.Create(WizardForm);
with complbl do
begin
Left:= ScaleX(20);
Top:= ScaleY(363);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('comp');
end;
///////////////////////////////
doplbl:=TLabel.Create(WizardForm);
with doplbl do
begin
Left:= ScaleX(215);
Top:= ScaleY(348);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('dop');
end;
IconsCheckLbl:=TLabel.Create(WizardForm);
with IconsCheckLbl do
begin
Left:= ScaleX(230);
Top:= ScaleY(387);
Width:= ScaleX(250);
Height:= ScaleY(16);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ic');
OnClick:= @IconsOnClick;
end;
//////////////////////////////////
DeleteFile(ExpandConstant('{tmp}\t&c.bmp'));
ready0:=TLabel.Create(WizardForm);
with ready0 do
begin
Left:= ScaleX(140);
Top:= ScaleY(340);
Width:= ScaleX(470);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready1')
end;
ready1:=TLabel.Create(WizardForm);
with ready1 do
begin
Left:= ScaleX(143);
Top:= ScaleY(370);
Width:= ScaleX(550);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready2')
end;
ready2:=TLabel.Create(WizardForm);
with ready2 do
begin
Left:= ScaleX(160);
Top:= ScaleY(385);
Width:= ScaleX(460);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready3');
end;
ready3:=TLabel.Create(WizardForm);
with ready3 do
begin
Left:= ScaleX(160);
Top:= ScaleY(400);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready4');
end;
ready4:=TLabel.Create(WizardForm);
with ready4 do
begin
Left:= ScaleX(160);
Top:= ScaleY(415);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready5');
end;
ready5:=TLabel.Create(WizardForm);
with ready5 do
begin
Left:= ScaleX(160);
Top:= ScaleY(415);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready6');
end;
dpolbl:=TLabel.Create(WizardForm);
with dpolbl do
begin
Left:= ScaleX(230);
Top:= ScaleY(423);
Width:= ScaleX(350);
Height:= ScaleY(16);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('doppo');
OnClick:= @DpoOnClick;
end;
ready6:=TLabel.Create(WizardForm);
with ready6 do
begin
Left:= ScaleX(160);
Top:= ScaleY(430);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready7');
end;
ready7:=TLabel.Create(WizardForm);
with ready7 do
begin
Left:= ScaleX(160);
Top:= ScaleY(430);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready8');
end;
LogoForm:= TForm.Create(WizardForm);
LogoForm.BorderStyle:= bsNone;
LogoForm.SetBounds(ScaleX(WizardForm.Width div 2 - 230), ScaleY(40), ScaleX(473), ScaleY(440));
LogoForm.Parent:= WizardForm;
end;
//************************************************ [Конец - Создание лебелов] ***************************************************//
procedure InitializeWizard;
begin
Enabled:= true;
CreateWizardImg;
CreateLabel;
ButtonsTextures;
NeedSpace;
#ifdef Slides
PicList:=tstringlist.Create;
ExtractTemporaryFile('fon1.jpg');
ExtractTemporaryFile('fon2.jpg');
ExtractTemporaryFile('fon3.jpg');
ExtractTemporaryFile('fon4.jpg');
ExtractTemporaryFile('fon5.jpg');
ExtractTemporaryFile('fon6.jpg');
ExtractTemporaryFile('fon7.jpg');
ExtractTemporaryFile('fon8.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon1.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon2.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon3.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon4.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon5.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon6.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon7.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon8.jpg');
#endif
end;
#ifdef Slides
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
CurrentPicture:=CurrentPicture+1;
if CurrentPicture=piclist.count+1 then CurrentPicture:=1;
ShowImage(piclist.strings[CurrentPicture - 1]);
end;
#endif
procedure CurPageChanged(CurPageID: Integer);
begin
SetStateNewButtons;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
BtnSetVisibility(hDirBrowseBtn, false);
BtnSetVisibility(hGroupBrowseBtn, false);
BtnSetVisibility(nic, false);
ImgSetVisibility(edit, false);
ImgSetVisibility(dir, false);
ImgSetVisibility(group, false);
ImgSetVisibility(work1, false);
ImgSetVisibility(work2, false);
ImgSetVisibility(work3, false);
ImgSetVisibility(work4, false);
ImgSetVisibility(work5, false);
ImgSetVisibility(work6, false);
ImgSetVisibility(work7, false);
ImgSetVisibility(ready, false);
#ifdef Components
ImgSetVisibility(work8, false);
#endif
ImgSetVisibility(workerror, false);
ImgSetVisibility(tasks, false);
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
dir1.Hide;
FreeSpaceLabel.Hide;
NeedSpaceLabel.Hide;
niclabel.Hide;
WizardForm.ComponentsList.Hide;
BtnSetVisibility(IconsCheck, false);
doplbl.Hide;
IconsCheckLbl.Hide;
WizardForm.TasksList.Hide;
complbl.Hide;
ready0.Hide;
ready1.Hide;
ready2.Hide;
ready3.Hide;
ready4.Hide;
ready5.Hide;
ready6.Hide;
ready7.Hide;
BtnSetVisibility(dpo, false);
dpolbl.Hide;
if CurPageID = wpWelcome then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon1.jpg'))
#endif
LogoForm.Hide;
WelcomeLabel1.Show;
WelcomeLabel2.Show;
ImgSetVisibility(work1, true);
CancelBtnClick1(0);
ImgSetVisibility(img1, true);
end;
if CurPageID = wpSelectDir then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon2.jpg'))
#endif
BtnSetVisibility(hDirBrowseBtn, true);
ImgSetVisibility(edit, true);
ImgSetVisibility(dir, true);
WizardForm.DirEdit.Show;
FreeSpaceLabel.Show;
NeedSpaceLabel.Show;
dir1.Show;
dir1.Caption:= cm('dir1');
dir1.Left:= ScaleX(220);
dir1.Top:= ScaleX(343);
ImgSetVisibility(work2, true);
LogoForm.Hide;
CancelBtnClick1(0);
ImgSetVisibility(img2, true);
end;
if CurPageID = wpSelectComponents then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon3.jpg'))
#endif
#ifdef Components
WizardForm.ComponentsList.Show;
WizardForm.ComponentsList.DragMode;
WizardForm.ComponentsList.Dragging;
ImgSetVisibility(work3, true);
complbl.Show;
LogoForm.Hide;
CancelBtnClick1(0);
#endif
end;
if CurPageID = wpSelectProgramGroup then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon4.jpg'))
#endif
BtnSetVisibility(hGroupBrowseBtn, true);
ImgSetVisibility(edit, true);
WizardForm.GroupEdit.Show;
ImgSetVisibility(group, true);
dir1.Caption:= cm('group1');
dir1.Left:= ScaleX(220);
dir1.Top:= ScaleX(343);
dir1.Show;
BtnSetVisibility(nic, true);
niclabel.Show;
#ifdef Components
ImgSetVisibility(work4, true);
#else
ImgSetVisibility(work3, true);
#endif
LogoForm.Hide;
CancelBtnClick1(0);
end;
if CurPageID = wpSelectTasks then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon5.jpg'))
#endif
BtnSetVisibility(IconsCheck, true);
doplbl.Show;
IconsCheckLbl.Show;
#ifdef Components
ImgSetVisibility(work5, true);
#else
ImgSetVisibility(work4, true);
#endif
ImgSetVisibility(tasks, true);
BtnSetVisibility(dpo, true);
dpolbl.Show;
LogoForm.Hide;
CancelBtnClick1(0);
end;
if CurPageID = wpReady then begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon6.jpg'))
#endif
#ifdef Components
ImgSetVisibility(work6, true);
#else
ImgSetVisibility(work5, true);
#endif
ready0.Show;
ready1.Show;
ready2.Show;
ready3.Show;
if BtnGetChecked(IconsCheck) then begin ready5.Hide; ready4.Show end else begin ready4.Hide; ready5.Show; end;
if BtnGetChecked(dpo) then begin ready7.Hide; ready6.Show end else begin ready6.Hide; ready7.Show; end;
LogoForm.Hide;
CancelBtnClick1(0);
ImgSetVisibility(ready, true);
end;
if CurPageID = wpInstalling then
begin
#ifdef Slides
CurrentPicture:=1;
TimerID:=SetTimer(0, 0, 3000, WrapTimerProc(@OnTimer, 4)); //задержка 3000 мс (3 секунды)
#endif
#ifdef Components
ImgSetVisibility(work7, true);
#else
ImgSetVisibility(work6, true);
#endif
LogoForm.Hide;
CancelBtnClick1(0);
end;
if CurPageID = wpFinished then
begin
#ifdef Slides
KillTimer(0, TimerID);
ShowImage(ExpandConstant('{tmp}\fon8.jpg'))
#endif
#ifdef Components
ImgSetVisibility(work8, true);
#else
ImgSetVisibility(work7, true);
#endif
WelcomeLabel1.Caption:= cm('Fin1');
WelcomeLabel2.Caption:= cm('Fin2');
WelcomeLabel2.Top:= WelcomeLabel2.Top-ScaleY(23);
WelcomeLabel1.Show;
WelcomeLabel2.Show;
i.Hide;
LogoForm.Hide;
CancelBtnClick1(0);
end;
if (CurPageID = wpFinished) and Error then
begin
WelcomeLabel1.Caption:= cm('Error1');
WelcomeLabel2.Caption:= cm('Error2')
ImgSetVisibility(workerror, true);
LogoForm.Hide;
CancelBtnClick1(0);
end;
ImgApplyChanges(WizardForm.Handle);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
Comps1, Comps2, Comps3, TmpValue: Cardinal;
FindHandle1, ColFiles1, CurIndex1: Integer;
ExecError: Boolean;
InFilePath, OutFilePath, OutFileName: PAnsiChar;
begin
if CurStep = ssInstall then begin
CreateControls;
pb:= ImgPBCreate(WizardForm.Handle, 'pb1.png', 'pb.png', ScaleX(55), ScaleY(440), ScaleX(627), ScaleY(25));
BtnSetEvent(hCancelBtn, BtnClickEventID, WrapBtnCallback(@CancelButtonOnClick, 1));
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
Cancel:=0;
ExtractTemporaryFile('unarc.dll');
#ifdef PrecompInside
ExtractTemporaryFile('CLS-precomp.dll');
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('packjpg_dll1.dll');
ExtractTemporaryFile('precomp.exe');
ExtractTemporaryFile('zlib1.dll');
#endif
#ifdef SrepInside
ExtractTemporaryFile('CLS-srep.dll');
#endif
#ifdef MSCInside
ExtractTemporaryFile('CLS-MSC.dll');
#endif
#ifdef facompress
ExtractTemporaryFile('facompress.dll');
#endif
#ifdef records
ExtractTemporaryFile('records.inf');
#endif
#ifdef precomp
#if precomp == "0.38"
ExtractTemporaryFile('precomp038.exe');
#else
#if precomp == "0.4"
ExtractTemporaryFile('precomp040.exe');
#else
#if precomp == "0.41"
ExtractTemporaryFile('precomp041.exe');
#else
#if precomp == "0.42"
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#endif
#ifdef unrar
ExtractTemporaryFile('Unrar.dll');
#endif
#ifdef XDelta
ExtractTemporaryFile('XDelta3.dll');
#endif
#ifdef PackZIP
ExtractTemporaryFile('7z.dll');
ExtractTemporaryFile('PackZIP.exe');
#endif
ExtractTemporaryFile('English.ini');
Comps1:=0; Comps2:=0; Comps3:=0;
#ifdef Components
TmpValue:=1;
if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue;
// .....
// см. справку
#endif
#ifdef precomp
PCFVer:={#precomp};
#else
PCFVer:=0;
#endif
Error:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
repeat
// ChangeLanguage('English');
if not SrepInit('',512,0) then break;
if not PrecompInit('',128,PCFVer) then break;
if not FileSearchInit(true) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
// далее находятся закомментированые примеры различных функций распаковки (чтобы каждый раз не лазить в справку за примерами)
(*
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\arc.arc'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\CODMW2.7z'), ExpandConstant('{app}\data1'), false, '') then break;
if not ISRarExtract ( 0, 0, ExpandConstant('{src}\data_*.rar'), ExpandConstant('{app}'), false, '') then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\data1024_1024.srep'),ExpandConstant('{app}\data1024.arc'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\data.pcf'), ExpandConstant('{app}\data.7z'), true) then break;
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{app}\in.pcf'), ExpandConstant('{app}\*.diff'), ExpandConstant('{app}\out.dat'), false) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\1a1\*'), ExpandConstant('{app}\1a1.pak'), 2, false ) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\Arc.exe'), ExpandConstant('x -o+ "{src}\001.arc" "{app}\"'), ExpandConstant('{tmp}'), '...',false) then break;
if not ShowChangeDiskWindow ('Пожалуйста, вставьте второй диск и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW_2.arc') then break;
// распаковка группы файлов посредством внешнего приложения
FindHandle1:=ISFindFiles(0,ExpandConstant('{app}\*.ogg'),ColFiles1);
ExecError:=false;
while not ExecError and ISPickFilename(FindHandle1,ExpandConstant('{app}\'),CurIndex1,true) do begin
InFilePath:=ISGetName(0);
OutFilePath:=ISGetName(1);
OutFileName:=ISGetName(2);
ExecError:=not ISExec(0, 0, 0, ExpandConstant('{tmp}\oggdec.exe'), '"'+InFilePath+'" -w "'+OutFilePath+'"',ExpandConstant('{tmp}'),OutFileName,false);
end;
ISFindFree(FindHandle1);
if ExecError then break;
*)
Error:=false;
until true;
ISDoneStop;
end;
HideControls;
end;
if (CurStep=ssPostInstall) and Error then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
procedure DeinitializeSetup;
begin
if Enabled then gdipShutdown;
#ifdef Slides
DeinitializeSlideShow;
KillTimer(0, TimerID);
#endif
end;
[/more]
как сделать чтобы
весь фон был не белого, а чёрного цвета? если надо выложу исходники
#define NeedSize 6100
#define NeedMem 512
///с компонентами и без
#define Components
////с слайдами или просто с картинкой
;#define Slides
#define Image
/////////////////////////////////////
;#define records
;#define facompress
;#define PrecompInside
#define SrepInside
;#define MSCInside //на будущее
;#define precomp "0.42"
#define unrar
;#define XDelta
;#define PackZIP
[Setup]
AppName={#MyAppName}
AppVersion=2.0
AppPublisher=dvd4el
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma2/ultra64
SolidCompression=true
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
//Name: eng; MessagesFile: compiler:Languages\English.isl
[Files]
Source: dll\b2p.dll; Flags: dontcopy
Source: dll\botva2.dll; Flags: dontcopy
Source: dll\gdiplus.dll; Flags: dontcopy
Source: dll\isSlideShow.dll; Flags: dontcopy
Source: dll\InnoCallback.dll; Flags: dontcopy
#ifdef Slides
Source: SlidesFiles\*; Flags: dontcopy
#endif
#ifdef Image
Source: Files\fonAC.jpg; Flags: dontcopy
#endif
Source: Files\about.png; Flags: dontcopy
Source: Files\aboutlog.png; Flags: dontcopy
Source: Files\Button.png; Flags: dontcopy
Source: Files\cb.png; Flags: dontcopy
Source: Files\dir.png; Flags: dontcopy
Source: Files\edit.png; Flags: dontcopy
Source: Files\exit.png; Flags: dontcopy
Source: Files\group.png; Flags: dontcopy
Source: Files\min.png; Flags: dontcopy
Source: Files\pb.png; Flags: dontcopy
Source: Files\pb1.png; Flags: dontcopy
Source: Files\tasks.png; Flags: dontcopy
Source: Files\t&c.bmp; Flags: dontcopy
Source: Files\ready.png; Flags: dontcopy
#ifdef Components
Source: Files\work1.jpg; Flags: dontcopy
Source: Files\work2.jpg; Flags: dontcopy
Source: Files\work3.jpg; Flags: dontcopy
Source: Files\work4.jpg; Flags: dontcopy
Source: Files\work5.jpg; Flags: dontcopy
Source: Files\work6.jpg; Flags: dontcopy
Source: Files\work7.jpg; Flags: dontcopy
Source: Files\work8.jpg; Flags: dontcopy
Source: Files\workerror.jpg; Flags: dontcopy
#else
Source: Files\2work1.jpg; Flags: dontcopy
Source: Files\2work2.jpg; Flags: dontcopy
Source: Files\2work3.jpg; Flags: dontcopy
Source: Files\2work4.jpg; Flags: dontcopy
Source: Files\2work5.jpg; Flags: dontcopy
Source: Files\2work6.jpg; Flags: dontcopy
Source: Files\2work7.jpg; Flags: dontcopy
Source: Files\2workerror.jpg; Flags: dontcopy
#endif
Source: ISDone\English.ini; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: records.inf; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PrecompInside
Source: ISDone\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef SrepInside
Source: ISDone\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef MSCInside
Source: ISDone\CLS-MSC.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef facompress
Source: ISDone\facompress.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef precomp
#if precomp == "0.38"
; Source: ISDone\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.4"
; Source: ISDone\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.41"
; Source: ISDone\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.42"
; Source: ISDone\precomp042.exe; DestDir: {tmp}; Flags: dontcopy
#else
; Source: ISDone\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
; Source: ISDone\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
; Source: ISDone\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
; Source: ISDone\precomp042.exe; DestDir: {tmp}; Flags: dontcopy
#endif
#endif
#endif
#endif
#endif
#ifdef unrar
Source: ISDone\Unrar.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef XDelta
Source: ISDone\XDelta3.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PackZIP
Source: ISDone\7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISDone\packZIP.exe; DestDir: {tmp}; Flags: dontcopy
#endif
[CustomMessages]
rus.Welcome1=Вас приветствует Мастер установки игры %n«{#MyAppName}»
rus.Welcome2=Рекомендуется закрыть антивирусные программы, а также все прочие приложения перед тем, как продолжить.%n%nНажмите «Далее», чтобы продолжить, или «Отмена», чтобы выйти из программы установки.
rus.Dir1=Программа установит «{#MyAppName}» в следующую папку.
rus.Dir2=Нажмите «Далее», чтобы продолжить. Если Вы хотите выбрать другую папку, нажмите «Обзор».
rus.Group1=Программа создаст ярлыки в следующей папке меню «Пуск».
rus.FreeSpace=Доступно места на диске:.....
rus.NeedSpace=Требуется места для установки:.....
rus.AfterInstallSpace=После установки игра займет:.....
rus.nic=Не создавать папку в меню «Пуск»
rus.Comp=Выберите компоненты, которые Вы хотите установить; %nснимите флажки с компонентов, устанавливать которые не требуется. %nНажмите «Далее», когда Вы будете готовы продолжить.
rus.dop=Выберите дополнительные задачи, которые необходимо выполнить
rus.ic=Добавить ярлык на рабочий стол
rus.Fin1=Установка игры «{#MyAppName}» %nуспешно завершена
rus.Fin2=%n%nДля ее запуска выберите соответствующий ярлык в меню "Пуск" %nили на Рабочем столе. %n%nНажмите "Завершить", чтобы выйти из программы установки.
rus.ExtractedFile=Извлекается файл:
rus.Extracted=Установка...
rus.Error=Ошибка распаковки!
rus.ElapsedTime=Прошло:
rus.RemainingTime=Осталось времени:
rus.rbc=Откат установки...
rus.p=Прогресс:
rus.exit=Выход
rus.Error1=Установка игры «{#MyAppName}» не завершена.
rus.Error2=%nВо время установки произошла ошибка, пожалуйста отключите сторонние программы и повторите попытку установки. %n%nНажмите «Завершить», чтобы выйти из программы установки.
rus.DX=Обновить DirectX
rus.VC=Установить Microsoft Visual C++
rus.ready1=Программа установки готова начать установку «{#MyAppName}» на Ваш компьютер.
rus.ready2=Информация:
rus.ready3=Игра будет установлена в
rus.ready4=Папка в меню пуск
rus.ready5=Будет создан ярлык на рабочем столе
rus.ready6=Ярлык на рабочем столе создан не будет
rus.doppo=Установить дополнительное программное обеспечение
rus.ready7=Будет установлено дополнительное программное обеспечение
rus.ready8=Дополнительное программное обеспечение установлено не будет
[Icons]
Name: {userdesktop}\{#MyAppName}; Filename: {app}\Data\Engine\KapowMulti.exe; WorkingDir: {app}; IconFilename: {app}\Data\Engine\KapowMulti.exe; Check: CheckError and IconsChecks
Name: {group}\{cm:UninstallProgram}; Filename: {uninstallexe}; Check: CheckError
[Run]
Filename: {src}\Redist\dxwebsetup.exe; WorkingDir: {src}\Redist\; Flags: waituntilterminated; Check: CheckError and DpoChecks
Filename: {src}\Redist\vcredist_x86.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: not IsWin64 and CheckError and DpoChecks
Filename: {src}\Redist\vcredist_x64.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: IsWin64 and CheckError and DpoChecks
[Tasks]
Name: VCCheck; Description: Установить Microsoft Visual C++ 2005 Redist
#ifdef Components
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive
Name: text\eng; Description: Английский; Flags: exclusive
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive
Name: voice\eng; Description: Английский; Flags: exclusive
#endif
[UninstallDelete]
Type: filesandordirs; Name: {app}
[Code]
const
PCFonFLY = true;
notPCFonFLY = false;
VK_ESCAPE = 27;
var
img1, img2: longint;
Cancel: Integer;
Error: Boolean;
ISDoneError: Boolean;
PCFVer: Double;
edit, dir, group, work1, work2, work3, work4, work5, work6, work7, work8, workerror, tasks, ready: Longint;
hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, Min, CloseBtn, nic, IconsCheck, CancelBtn, MinBtn, AboutBtn, dpo: HWND;
WFButtonFont: TFont;
UpdBtn, UpdTasks: TTimer;
WelcomeLabel1, MainLabel, WelcomeLabel2, dir1, IconsCheckLbl,
NeedSpaceLabel, Dir1Label, FreeSpaceLabel, niclabel, doplbl, Pct, CurrFileName, Time1, Time2, i, dxlbl, vclbl, complbl, ready0, ready1, ready2, ready3, ready4, ready5, ready6, ready7, ready8, ready9, dpolbl: TLabel;
FreeMB, TotalMB: Cardinal;
SizeInt: Longint;
Enabled: Boolean;
LogoForm: TForm; closebnt: HWND;
TimerID: LongWord;
CurrentPicture:integer;
PicList: TStringlist;
imgpanel: tpanel;
#include "AddIss\botva2.iss"
#include "AddIss\progressbar.iss"
var pb: TImgPB;
function ReleaseCapture: Longint; external 'ReleaseCapture@user32.dll stdcall';
///
type
TCallback = function (OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
function GetKeyState(nVirtKey: Integer): ShortInt; external 'GetKeyState@user32 stdcall delayload';
function WrapCallback(callback: TCallback; paramcount: Integer): longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';
function ISArcExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean):boolean; external 'ISArcExtract@files:ISDone.dll stdcall delayload';
function IS7ZipExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'IS7zipExtract@files:ISDone.dll stdcall delayload';
function ISRarExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'ISRarExtract@files:ISDone.dll stdcall delayload';
function ISPrecompExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISPrecompExtract@files:ISDone.dll stdcall delayload';
function ISSRepExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISSrepExtract@files:ISDone.dll stdcall delayload';
function ISxDeltaExtract(CurComponent:Cardinal; PctOfTotal:double; minRAM,maxRAM:integer; InName, DiffFile, OutFile: AnsiString; DeleteInFile, DeleteDiffFile:boolean):boolean; external 'ISxDeltaExtract@files:ISDone.dll stdcall delayload';
function ISPackZIP(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString;ComprLvl:integer; DeleteInFile:boolean):boolean; external 'ISPackZIP@files:ISDone.dll stdcall delayload';
function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):boolean; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall delayload';
function Exec2 (FileName, Param: PAnsiChar;Show:boolean):boolean; external 'Exec2@files:ISDone.dll stdcall delayload';
function ISFindFiles(CurComponent:Cardinal; FileMask:AnsiString; var ColFiles:integer):integer; external 'ISFindFiles@files:ISDone.dll stdcall delayload';
function ISPickFilename(FindHandle:integer; OutPath:AnsiString; var CurIndex:integer; DeleteInFile:boolean):boolean; external 'ISPickFilename@files:ISDone.dll stdcall delayload';
function ISGetName(TypeStr:integer):PAnsichar; external 'ISGetName@files:ISDone.dll stdcall delayload';
function ISFindFree(FindHandle:integer):boolean; external 'ISFindFree@files:ISDone.dll stdcall delayload';
function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString;Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
function SrepInit(TmpPath:PAnsiChar;VirtMem,MaxSave:Cardinal):boolean; external 'SrepInit@files:ISDone.dll stdcall delayload';
function PrecompInit(TmpPath:PAnsiChar;VirtMem:cardinal;PrecompVers:single):boolean; external 'PrecompInit@files:ISDone.dll stdcall delayload';
function FileSearchInit(RecursiveSubDir: Boolean): Boolean; external 'FileSearchInit@files:ISDone.dll stdcall delayload';
function ISDoneInit(RecordFileName:AnsiString; TimeType,Comp1,Comp2,Comp3:Cardinal; WinHandle, NeededMem:longint; callback:TCallback):boolean; external 'ISDoneInit@files:ISDone.dll stdcall';
function ISDoneStop: Boolean; external 'ISDoneStop@files:ISDone.dll stdcall';
function ChangeLanguage(Language: AnsiString): Boolean; external 'ChangeLanguage@files:ISDone.dll stdcall delayload';
function SuspendProc: Boolean; external 'SuspendProc@files:ISDone.dll stdcall';
function ResumeProc: Boolean; external 'ResumeProc@files:ISDone.dll stdcall';
///
#ifdef Slides
function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeSlideShow(Hwnd:Thandle; l,t,w,h:integer;Animate:boolean; Stretch:integer); external 'InitializeSlideShow@files:isslideshow.dll stdcall';
procedure DeinitializeSlideShow; external 'DeinitializeSlideShow@files:isslideshow.dll stdcall';
procedure ShowImage_(file_: PAnsiChar; effect_: longint); external 'ShowImage@files:isslideshow.dll stdcall';
#endif
////
procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0)
end;
function ProgressCallback(OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;
begin
if (GetKeyState(VK_ESCAPE) < 0) then begin if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1; end;
if OveralPct<=1000 then ImgPBSetPosition(pb, OveralPct);
Pct.Caption := ExpandConstant('{cm:p} ')+IntToStr(OveralPct div 10)+'.'+chr(48 + OveralPct mod 10)+'%';
CurrFileName.Caption:=ExpandConstant('{cm:ExtractedFile} ')+MinimizePathName(CurrentFile, CurrFileName.Font, CurrFileName.Width-ScaleX(100));
Time1.Caption:=ExpandConstant('{cm:ElapsedTime} ')+TimeStr2;
Time2.Caption:=ExpandConstant('{cm:RemainingTime} ')+TimeStr1;
Result := Cancel;
end;
function IconsChecks: Boolean;
begin
Result:= BtnGetChecked(IconsCheck);
end;
function DpoChecks: Boolean;
begin
Result:= BtnGetChecked(dpo);
end;
procedure CancelButtonOnClick(h: HWND);
begin
SuspendProc;
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1;
ResumeProc;
end;
function cm(s: PAnsiChar): String;
begin
Result:= ExpandConstant('{cm:'+s+'}');
end;
#ifdef Slides
procedure ShowImage(file: string);
begin
if Pos(ExpandConstant('{tmp}\'), File)>0 then StringChange(File, ExpandConstant('{tmp}\'), '');
if Pos('{tmp}\', File)>0 then StringChange(File, '{tmp}\', '');
ExtractTemporaryFile(file);
ShowImage_(ExpandConstant('{tmp}\'+File), 1);
DeleteFile(ExpandConstant('{tmp}\'+File));
end;
#endif
procedure HideControls;
begin
Pct.Hide; i.Hide; CurrFileName.Hide; Time1.Hide; Time2.Hide; ImgPBDelete(pb);
if Error then begin i.Show; i.Caption:= cm('rbc'); end;
end;
procedure CreateControls;
begin
Pct := TLabel.Create(WizardForm);
with Pct do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Left:= ScaleX(55);
Top:= ScaleY(420);
Width:= ScaleX(180);
Transparent:= true;
BringToFront;
end;
CurrFileName := TLabel.Create(WizardForm);
with CurrFileName do begin
Parent:= WizardForm;
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
AutoSize:= false;
Width:= ScaleX(300);
Left:= ScaleX(55);
Top:= ScaleY(375);
Transparent:= true;
end;
Time1 := TLabel.Create(WizardForm);
with Time1 do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Width:= ScaleX(200);
Left:= ScaleX(55);
Top:= ScaleY(390);
Transparent:= true;
end;
Time2 := TLabel.Create(WizardForm);
with Time2 do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Width:= Time1.Width+ScaleX(40);
Left:= ScaleX(55);
Top:= Time1.Top+ScaleY(15);
Transparent:= true;
end;
i := TLabel.Create(WizardForm);
with i do begin
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
AutoSize:= false;
Width:= Time1.Width+ScaleX(40);
Left:= ScaleX(55);
Top:= ScaleY(360);
Transparent:= true;
Caption:= cm('Extracted');
end;
end;
function CheckError: Boolean;
begin
Result:= not Error;
end;
///
procedure FrameMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
WizardForm.SetFocus;
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0);
end;
function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\gdiplus.dll')) then ExtractTemporaryFile('gdiplus.dll');
Result:=True;
end;
//************************************************ [Начало - Загрузка изображений и подготовка визарда] ***************************************************//
procedure CreateWizardImg;
begin
with WizardForm do begin
BorderStyle := bsNone;
ClientWidth:=ScaleX(733);
ClientHeight:=ScaleY(506);
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
Center;
Color:= $191919;
end;
#ifdef Slides
imgPanel := TPanel.Create(WizardForm);
imgPanel.Top := ScaleY(73);
imgPanel.Left := ScaleX(19);
imgPanel.Width := ScaleX(695);
imgPanel.Height := ScaleY(225);
imgPanel.BevelOuter := bvNone;
imgPanel.Parent := WizardForm;
InitializeSlideShow(imgPanel.Handle, ScaleX(0), ScaleY(0), ScaleX(695), ScaleY(225), true, 8);
#endif
#ifdef Components
work1:= ImgLoad(WizardForm.handle, ExpandConstant('work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work2:= ImgLoad(WizardForm.handle, ExpandConstant('work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work3:= ImgLoad(WizardForm.handle, ExpandConstant('work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work4:= ImgLoad(WizardForm.handle, ExpandConstant('work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work5:= ImgLoad(WizardForm.handle, ExpandConstant('work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work6:= ImgLoad(WizardForm.handle, ExpandConstant('work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work7:= ImgLoad(WizardForm.handle, ExpandConstant('work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work8:= ImgLoad(WizardForm.handle, ExpandConstant('work8.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
workerror:= ImgLoad(WizardForm.handle, ExpandConstant('workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
#else
work1:= ImgLoad(WizardForm.handle, ExpandConstant('2work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work2:= ImgLoad(WizardForm.handle, ExpandConstant('2work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work3:= ImgLoad(WizardForm.handle, ExpandConstant('2work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work4:= ImgLoad(WizardForm.handle, ExpandConstant('2work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work5:= ImgLoad(WizardForm.handle, ExpandConstant('2work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work6:= ImgLoad(WizardForm.handle, ExpandConstant('2work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
work7:= ImgLoad(WizardForm.handle, ExpandConstant('2work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
workerror:= ImgLoad(WizardForm.handle, ExpandConstant('2workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
#endif
#ifdef Image
ImgLoad(WizardForm.handle, ExpandConstant('fonAC.jpg'), ScaleX(19), ScaleY(73), ScaleX(695), ScaleY(225), True, True);
#endif
edit:= ImgLoad(WizardForm.handle, ExpandConstant('edit.png'), ScaleX(145), ScaleY(380), ScaleX(328), ScaleY(24), True, True);
ready:= ImgLoad(WizardForm.handle, ExpandConstant('ready.png'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
dir:= ImgLoad(WizardForm.handle, ExpandConstant('dir.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);
group:= ImgLoad(WizardForm.handle, ExpandConstant('group.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);
tasks:= ImgLoad(WizardForm.handle, ExpandConstant('tasks.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);
ImgApplyChanges(WizardForm.Handle);
end;
//************************************************ [Конец - Загрузка изображений и подготовка визарда] ***************************************************//
//************************************************ [Начало - Текстуры кнопок] ***************************************************//
procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetText(hBackBtn,PAnsiChar(Caption));
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
BtnRefresh(hBackBtn);
end;
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption));
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
BtnRefresh(hNextBtn);
end;
with WizardForm.CancelButton do begin
BtnSetText(hCancelBtn, PAnsiChar(cm('exit')));
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
BtnRefresh(hCancelBtn);
end;
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;
procedure TimerRefreshBtn(S: TObject);
begin
BtnRefresh(hBackBtn);
BtnRefresh(hNextBtn);
BtnRefresh(hCancelBtn);
BtnRefresh(hDirBrowseBtn);
BtnRefresh(hGroupBrowseBtn);
if BtnGetChecked(nic) then ready3.Caption:= cm('ready4') + ': ' + '-- --' else ready3.Caption:= cm('ready4') + ': ' + WizardForm.GroupEdit.Text;
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 MinimizeBtnClick(h: HWND);
begin
WizardForm.SetFocus;
ReleaseCapture;
SendMessage(WizardForm.Handle,$112,61472,0);
end;
procedure CancelBtnClick(h: HWND);
begin
WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
end;
procedure CancelBtnClick1(h: HWND);
begin
LogoForm.Hide;
BtnSetEnabled(AboutBtn, not LogoForm.Visible);
end;
procedure NoIconsClick(hBtn: HWND);
var
Check:boolean;
begin
Check:= BtnGetChecked(hBtn);
BtnSetEnabled(hGroupBrowseBtn, not Check);
WizardForm.GroupEdit.Enabled:= not Check;
WizardForm.NoIconsCheck.Checked:= Check;
WizardForm.GroupEdit.Color:= $ffffff;
end;
procedure DpoOnClick(hBtn: TObject);
begin
BtnSetChecked(dpo, not BtnGetChecked(dpo));
if BtnGetChecked(dpo) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;
end;
procedure DpoOnClick1(hBtn: HWND);
begin
if BtnGetChecked(hBtn) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;
end;
procedure AboutClick(hBtn: HWND);
var ok: HWND;
begin
closebnt:= BtnCreate(LogoForm.Handle, ScaleX(473 - 20), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);
BtnSetEvent(closebnt, BtnClickEventID,WrapBtnCallback(@CancelBtnClick1, 1));
ok:=BtnCreate(LogoForm.Handle, ScaleX(373), ScaleY(403), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(ok,BtnClickEventID,WrapBtnCallback(@CancelBtnClick1,1));
BtnSetFont(ok,WFButtonFont.Handle);
BtnSetFontColor(ok, $363636, $363636, $363636, clgray);
BtnSetText(ok,'OK');
ImgLoad(LogoForm.Handle, 'aboutlog.png', 0, 0, ScaleX(473), ScaleY(440), true, true);
LogoForm.Show;
BtnSetEnabled(AboutBtn, not LogoForm.Visible);
ImgApplyChanges(LogoForm.Handle);
end;
procedure IconsClick(hBtn: HWND);
var Check: Boolean;
begin
if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;
end;
procedure nicOnClick(Sender: TObject);
begin
BtnSetChecked(nic, not BtnGetChecked(nic));
NoIconsClick(nic);
end;
procedure IconsOnClick(Sender: TObject);
begin
BtnSetChecked(IconsCheck, not BtnGetChecked(IconsCheck));
if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;
end;
procedure ButtonsTextures;
begin
WFButtonFont:=TFont.Create;
WFButtonFont.Name:= 'Tahoma';
WFButtonFont.Size:= 9;
WFButtonFont.Color:= $363636;
with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle, ScaleX(500), ScaleY(470), ScaleX(93), ScaleY(33), 'button.png', 5, False);
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle, ScaleX(400), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(620), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
CancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(717), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);
BtnSetEvent(CancelBtn, BtnClickEventID,WrapBtnCallback(@CancelBtnClick,1));
BtnSetFont(CancelBtn, WFButtonFont.Handle);
BtnSetText(CancelBtn,'');
MinBtn:=BtnCreate(WizardForm.Handle, ScaleX(704), ScaleY(4), ScaleX(8), ScaleY(33), ExpandConstant('min.png'), 1, false);
BtnSetEvent(MinBtn, BtnClickEventID,WrapBtnCallback(@MinimizeBtnClick,1));
AboutBtn:=BtnCreate(WizardForm.Handle, ScaleX(20), ScaleY(470), ScaleX(29), ScaleY(35), ExpandConstant('about.png'), 5, false);
BtnSetChecked(AboutBtn, true);
BtnSetEvent(AboutBtn, BtnClickEventID,WrapBtnCallback(@AboutClick,1));
with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn, $363636, $363636, $363636, $363636);
Width:=0;
Height:=0;
end;
nic:=BtnCreate(WizardForm.Handle, ScaleX(140),ScaleY(405), ScaleX(30),ScaleY(30), ExpandConstant('cb.png'), 1, true);
BtnSetChecked(nic, false);
BtnSetEvent(nic,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));
IconsCheck:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(380), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);
BtnSetChecked(IconsCheck, true);
BtnSetEvent(IconsCheck, BtnClickEventID, WrapBtnCallback(@IconsClick, 1));
dpo:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(410), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);
BtnSetChecked(dpo, true);
BtnSetEvent(dpo, BtnClickEventID, WrapBtnCallback(@DpoOnClick1, 1));
end;
//************************************************ [Конец - Текстуры кнопок] ***************************************************//
//************************************************[Начало - Проверка места на диске]*************************************************************//
Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', ',');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = ',')) and (Pos(',', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;
function CompareNum(FirstNum, SecondNum: Integer): Boolean;
begin
if FirstNum < SecondNum then Result:= False else Result:= True;
end;
Function MbOrTb(Byte: Extended): AnsiString;
begin
if Byte < 1024 then Result:= NumToStr(Byte) + ' MB' else
if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' GB' else
Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' TB'
end;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: AnsiString; gsod: Boolean;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
gsod:= GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if gsod then begin
FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTB(FreeMb) + ' (' + IntToStr((FreeMb*100) div TotalMB) + ' %)';
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt);
BtnSetEnabled(hNextBtn, true);
WizardForm.NextButton.Enabled:= true;
end else
if not gsod then begin
FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} 0 MB');
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt)
BtnSetEnabled(hNextBtn, false);
WizardForm.NextButton.Enabled:= false;
Exit;
end;
ready2.Caption:=ready2.Caption + ': ' + WizardForm.DirEdit.Text;
end;
procedure NeedSpace;
begin
SizeInt:= {#NeedSize}
FreeSpaceLabel := TLabel.Create(WizardForm);
FreeSpaceLabel.SetBounds(ScaleX(145), ScaleY(410), ScaleX(209), ScaleY(13))
FreeSpaceLabel.Parent := WizardForm;
FreeSpaceLabel.Font.Name:='Arial';
FreeSpaceLabel.Font.Size:= 8;
FreeSpaceLabel.Font.Color:= $363636;
FreeSpaceLabel.Transparent:=true;
FreeSpaceLabel.Font.Style := [fsBold];
NeedSpaceLabel := TLabel.Create(WizardForm);
NeedSpaceLabel.SetBounds(ScaleX(145), ScaleY(430), ScaleX(209), ScaleY(13))
NeedSpaceLabel.Parent := WizardForm;
NeedSpaceLabel.Font.Name:='Arial';
NeedSpaceLabel.Font.Size:= 8;
NeedSpaceLabel.Font.Color:= $363636;
NeedSpaceLabel.Transparent:=true;
NeedSpaceLabel.Font.Style:= [fsBold];
WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;
end;
//************************************************[Конец - Проверка места на диске]*************************************************************//
//************************************************ [Начало - Создание лебелов] ***************************************************//
procedure CreateLabel;
begin
//Без этого кнопки нормально не перерисовываются, если запустить сетап и при этом навести курсор на кнопку.
UpdBtn:= TTimer.Create(nil);
UpdBtn.Interval:= 1;
UpdBtn.OnTimer:= @TimerRefreshBtn;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
MainLabel:= TLabel.Create(WizardForm);
with MainLabel do
begin
Left:= ScaleX(0);
Top:= ScaleY(7);
Width:= ScaleX(752);
Height:= ScaleY(34);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Corbel';
Alignment:= taCenter;
Font.Size:= 10;
Font.Color:= $aeacac;
Font.Style := [fsBold];
Parent:= WizardForm;
OnMouseDown:=@LabelOnMouseDown;
Caption:= WizardForm.Caption;
end;
//Welcome
WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
Left:= ScaleX(140);
Top:= ScaleY(330);
Width:= ScaleX(450);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Arial';
Font.Size:= 10;
Font.Color:=$363636;
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= cm('Welcome1');
end;
WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
Left:= ScaleX(140);
Top:= ScaleY(370);;
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:='Arial';
Font.Size:= 9;
Font.Color:=$363636;
Alignment := taCenter;
Font.Style := [fsBold];
Transparent:= true;
Parent:= WizardForm;
Caption:= cm('Welcome2');
end;
//SelectDir
with WizardForm.DirEdit do begin
Parent:= WizardForm;
Left:= ScaleX(148);
Top:= ScaleY(384);
BorderStyle:= bsNone;
Color:= $ffffff;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:= $363636;
Width:= ScaleX(324);
Height:= ScaleY(18);
end;
with WizardForm.GroupEdit do begin
Parent:= WizardForm;
Left:= ScaleX(148);
Top:= ScaleY(384);
BorderStyle:= bsNone;
Color:= $ffffff;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Color:= $363636;
Width:= ScaleX(324);
Height:= ScaleY(18);
end;
dir1:=TLabel.Create(WizardForm);
with dir1 do
begin
Left:= ScaleX(300);
Top:= ScaleY(480);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8
Font.Style := [fsBold];
Transparent:= true;
Font.Color:= $363636;
Parent:= WizardForm;
Caption:= cm('dir1');
end;
/////////////////////////
niclabel:=TLabel.Create(WizardForm);
with niclabel do
begin
Left:= ScaleX(170);
Top:= ScaleY(412);
Width:= ScaleX(250);
Height:= ScaleY(16);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('nic');
OnClick:= @nicOnClick;
end;
/////////////////////////////////
ExtractTemporaryFile('t&c.bmp');
with WizardForm.ComponentsList do begin
Left:= ScaleX(435);
Top:= ScaleY(330);
Width:= ScaleX(275);
Height:= ScaleY(110);
Color:= WizardForm.Color;
Font.Color:= $363636;
Font.Style:= [fsBold];
Font.Size:= 8;
Font.Name:= 'Arial'
BorderStyle:= bsSingle;
Font.Color:= $363636;
LoadBGBmpFromFile(ExpandConstant('{tmp}\t&c.bmp'), 0, 0);
Parent:= WizardForm;
end;
complbl:=TLabel.Create(WizardForm);
with complbl do
begin
Left:= ScaleX(20);
Top:= ScaleY(363);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 9;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('comp');
end;
///////////////////////////////
doplbl:=TLabel.Create(WizardForm);
with doplbl do
begin
Left:= ScaleX(215);
Top:= ScaleY(348);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('dop');
end;
IconsCheckLbl:=TLabel.Create(WizardForm);
with IconsCheckLbl do
begin
Left:= ScaleX(230);
Top:= ScaleY(387);
Width:= ScaleX(250);
Height:= ScaleY(16);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ic');
OnClick:= @IconsOnClick;
end;
//////////////////////////////////
DeleteFile(ExpandConstant('{tmp}\t&c.bmp'));
ready0:=TLabel.Create(WizardForm);
with ready0 do
begin
Left:= ScaleX(140);
Top:= ScaleY(340);
Width:= ScaleX(470);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready1')
end;
ready1:=TLabel.Create(WizardForm);
with ready1 do
begin
Left:= ScaleX(143);
Top:= ScaleY(370);
Width:= ScaleX(550);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready2')
end;
ready2:=TLabel.Create(WizardForm);
with ready2 do
begin
Left:= ScaleX(160);
Top:= ScaleY(385);
Width:= ScaleX(460);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready3');
end;
ready3:=TLabel.Create(WizardForm);
with ready3 do
begin
Left:= ScaleX(160);
Top:= ScaleY(400);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready4');
end;
ready4:=TLabel.Create(WizardForm);
with ready4 do
begin
Left:= ScaleX(160);
Top:= ScaleY(415);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready5');
end;
ready5:=TLabel.Create(WizardForm);
with ready5 do
begin
Left:= ScaleX(160);
Top:= ScaleY(415);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready6');
end;
dpolbl:=TLabel.Create(WizardForm);
with dpolbl do
begin
Left:= ScaleX(230);
Top:= ScaleY(423);
Width:= ScaleX(350);
Height:= ScaleY(16);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('doppo');
OnClick:= @DpoOnClick;
end;
ready6:=TLabel.Create(WizardForm);
with ready6 do
begin
Left:= ScaleX(160);
Top:= ScaleY(430);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready7');
end;
ready7:=TLabel.Create(WizardForm);
with ready7 do
begin
Left:= ScaleX(160);
Top:= ScaleY(430);
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Arial';
Font.Size:= 8;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:=$363636;
Parent:= WizardForm;
Caption:= cm('ready8');
end;
LogoForm:= TForm.Create(WizardForm);
LogoForm.BorderStyle:= bsNone;
LogoForm.SetBounds(ScaleX(WizardForm.Width div 2 - 230), ScaleY(40), ScaleX(473), ScaleY(440));
LogoForm.Parent:= WizardForm;
end;
//************************************************ [Конец - Создание лебелов] ***************************************************//
procedure InitializeWizard;
begin
Enabled:= true;
CreateWizardImg;
CreateLabel;
ButtonsTextures;
NeedSpace;
#ifdef Slides
PicList:=tstringlist.Create;
ExtractTemporaryFile('fon1.jpg');
ExtractTemporaryFile('fon2.jpg');
ExtractTemporaryFile('fon3.jpg');
ExtractTemporaryFile('fon4.jpg');
ExtractTemporaryFile('fon5.jpg');
ExtractTemporaryFile('fon6.jpg');
ExtractTemporaryFile('fon7.jpg');
ExtractTemporaryFile('fon8.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon1.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon2.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon3.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon4.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon5.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon6.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon7.jpg');
piclist.add(ExpandConstant('{tmp}') + '\fon8.jpg');
#endif
end;
#ifdef Slides
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
CurrentPicture:=CurrentPicture+1;
if CurrentPicture=piclist.count+1 then CurrentPicture:=1;
ShowImage(piclist.strings[CurrentPicture - 1]);
end;
#endif
procedure CurPageChanged(CurPageID: Integer);
begin
SetStateNewButtons;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
BtnSetVisibility(hDirBrowseBtn, false);
BtnSetVisibility(hGroupBrowseBtn, false);
BtnSetVisibility(nic, false);
ImgSetVisibility(edit, false);
ImgSetVisibility(dir, false);
ImgSetVisibility(group, false);
ImgSetVisibility(work1, false);
ImgSetVisibility(work2, false);
ImgSetVisibility(work3, false);
ImgSetVisibility(work4, false);
ImgSetVisibility(work5, false);
ImgSetVisibility(work6, false);
ImgSetVisibility(work7, false);
ImgSetVisibility(ready, false);
#ifdef Components
ImgSetVisibility(work8, false);
#endif
ImgSetVisibility(workerror, false);
ImgSetVisibility(tasks, false);
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
dir1.Hide;
FreeSpaceLabel.Hide;
NeedSpaceLabel.Hide;
niclabel.Hide;
WizardForm.ComponentsList.Hide;
BtnSetVisibility(IconsCheck, false);
doplbl.Hide;
IconsCheckLbl.Hide;
WizardForm.TasksList.Hide;
complbl.Hide;
ready0.Hide;
ready1.Hide;
ready2.Hide;
ready3.Hide;
ready4.Hide;
ready5.Hide;
ready6.Hide;
ready7.Hide;
BtnSetVisibility(dpo, false);
dpolbl.Hide;
if CurPageID = wpWelcome then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon1.jpg'))
#endif
LogoForm.Hide;
WelcomeLabel1.Show;
WelcomeLabel2.Show;
ImgSetVisibility(work1, true);
CancelBtnClick1(0);
ImgSetVisibility(img1, true);
end;
if CurPageID = wpSelectDir then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon2.jpg'))
#endif
BtnSetVisibility(hDirBrowseBtn, true);
ImgSetVisibility(edit, true);
ImgSetVisibility(dir, true);
WizardForm.DirEdit.Show;
FreeSpaceLabel.Show;
NeedSpaceLabel.Show;
dir1.Show;
dir1.Caption:= cm('dir1');
dir1.Left:= ScaleX(220);
dir1.Top:= ScaleX(343);
ImgSetVisibility(work2, true);
LogoForm.Hide;
CancelBtnClick1(0);
ImgSetVisibility(img2, true);
end;
if CurPageID = wpSelectComponents then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon3.jpg'))
#endif
#ifdef Components
WizardForm.ComponentsList.Show;
WizardForm.ComponentsList.DragMode;
WizardForm.ComponentsList.Dragging;
ImgSetVisibility(work3, true);
complbl.Show;
LogoForm.Hide;
CancelBtnClick1(0);
#endif
end;
if CurPageID = wpSelectProgramGroup then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon4.jpg'))
#endif
BtnSetVisibility(hGroupBrowseBtn, true);
ImgSetVisibility(edit, true);
WizardForm.GroupEdit.Show;
ImgSetVisibility(group, true);
dir1.Caption:= cm('group1');
dir1.Left:= ScaleX(220);
dir1.Top:= ScaleX(343);
dir1.Show;
BtnSetVisibility(nic, true);
niclabel.Show;
#ifdef Components
ImgSetVisibility(work4, true);
#else
ImgSetVisibility(work3, true);
#endif
LogoForm.Hide;
CancelBtnClick1(0);
end;
if CurPageID = wpSelectTasks then
begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon5.jpg'))
#endif
BtnSetVisibility(IconsCheck, true);
doplbl.Show;
IconsCheckLbl.Show;
#ifdef Components
ImgSetVisibility(work5, true);
#else
ImgSetVisibility(work4, true);
#endif
ImgSetVisibility(tasks, true);
BtnSetVisibility(dpo, true);
dpolbl.Show;
LogoForm.Hide;
CancelBtnClick1(0);
end;
if CurPageID = wpReady then begin
#ifdef Slides
ShowImage(ExpandConstant('{tmp}\fon6.jpg'))
#endif
#ifdef Components
ImgSetVisibility(work6, true);
#else
ImgSetVisibility(work5, true);
#endif
ready0.Show;
ready1.Show;
ready2.Show;
ready3.Show;
if BtnGetChecked(IconsCheck) then begin ready5.Hide; ready4.Show end else begin ready4.Hide; ready5.Show; end;
if BtnGetChecked(dpo) then begin ready7.Hide; ready6.Show end else begin ready6.Hide; ready7.Show; end;
LogoForm.Hide;
CancelBtnClick1(0);
ImgSetVisibility(ready, true);
end;
if CurPageID = wpInstalling then
begin
#ifdef Slides
CurrentPicture:=1;
TimerID:=SetTimer(0, 0, 3000, WrapTimerProc(@OnTimer, 4)); //задержка 3000 мс (3 секунды)
#endif
#ifdef Components
ImgSetVisibility(work7, true);
#else
ImgSetVisibility(work6, true);
#endif
LogoForm.Hide;
CancelBtnClick1(0);
end;
if CurPageID = wpFinished then
begin
#ifdef Slides
KillTimer(0, TimerID);
ShowImage(ExpandConstant('{tmp}\fon8.jpg'))
#endif
#ifdef Components
ImgSetVisibility(work8, true);
#else
ImgSetVisibility(work7, true);
#endif
WelcomeLabel1.Caption:= cm('Fin1');
WelcomeLabel2.Caption:= cm('Fin2');
WelcomeLabel2.Top:= WelcomeLabel2.Top-ScaleY(23);
WelcomeLabel1.Show;
WelcomeLabel2.Show;
i.Hide;
LogoForm.Hide;
CancelBtnClick1(0);
end;
if (CurPageID = wpFinished) and Error then
begin
WelcomeLabel1.Caption:= cm('Error1');
WelcomeLabel2.Caption:= cm('Error2')
ImgSetVisibility(workerror, true);
LogoForm.Hide;
CancelBtnClick1(0);
end;
ImgApplyChanges(WizardForm.Handle);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
Comps1, Comps2, Comps3, TmpValue: Cardinal;
FindHandle1, ColFiles1, CurIndex1: Integer;
ExecError: Boolean;
InFilePath, OutFilePath, OutFileName: PAnsiChar;
begin
if CurStep = ssInstall then begin
CreateControls;
pb:= ImgPBCreate(WizardForm.Handle, 'pb1.png', 'pb.png', ScaleX(55), ScaleY(440), ScaleX(627), ScaleY(25));
BtnSetEvent(hCancelBtn, BtnClickEventID, WrapBtnCallback(@CancelButtonOnClick, 1));
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
Cancel:=0;
ExtractTemporaryFile('unarc.dll');
#ifdef PrecompInside
ExtractTemporaryFile('CLS-precomp.dll');
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('packjpg_dll1.dll');
ExtractTemporaryFile('precomp.exe');
ExtractTemporaryFile('zlib1.dll');
#endif
#ifdef SrepInside
ExtractTemporaryFile('CLS-srep.dll');
#endif
#ifdef MSCInside
ExtractTemporaryFile('CLS-MSC.dll');
#endif
#ifdef facompress
ExtractTemporaryFile('facompress.dll');
#endif
#ifdef records
ExtractTemporaryFile('records.inf');
#endif
#ifdef precomp
#if precomp == "0.38"
ExtractTemporaryFile('precomp038.exe');
#else
#if precomp == "0.4"
ExtractTemporaryFile('precomp040.exe');
#else
#if precomp == "0.41"
ExtractTemporaryFile('precomp041.exe');
#else
#if precomp == "0.42"
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#endif
#ifdef unrar
ExtractTemporaryFile('Unrar.dll');
#endif
#ifdef XDelta
ExtractTemporaryFile('XDelta3.dll');
#endif
#ifdef PackZIP
ExtractTemporaryFile('7z.dll');
ExtractTemporaryFile('PackZIP.exe');
#endif
ExtractTemporaryFile('English.ini');
Comps1:=0; Comps2:=0; Comps3:=0;
#ifdef Components
TmpValue:=1;
if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue;
// .....
// см. справку
#endif
#ifdef precomp
PCFVer:={#precomp};
#else
PCFVer:=0;
#endif
Error:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
repeat
// ChangeLanguage('English');
if not SrepInit('',512,0) then break;
if not PrecompInit('',128,PCFVer) then break;
if not FileSearchInit(true) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
// далее находятся закомментированые примеры различных функций распаковки (чтобы каждый раз не лазить в справку за примерами)
(*
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\arc.arc'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\CODMW2.7z'), ExpandConstant('{app}\data1'), false, '') then break;
if not ISRarExtract ( 0, 0, ExpandConstant('{src}\data_*.rar'), ExpandConstant('{app}'), false, '') then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\data1024_1024.srep'),ExpandConstant('{app}\data1024.arc'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\data.pcf'), ExpandConstant('{app}\data.7z'), true) then break;
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{app}\in.pcf'), ExpandConstant('{app}\*.diff'), ExpandConstant('{app}\out.dat'), false) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\1a1\*'), ExpandConstant('{app}\1a1.pak'), 2, false ) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\Arc.exe'), ExpandConstant('x -o+ "{src}\001.arc" "{app}\"'), ExpandConstant('{tmp}'), '...',false) then break;
if not ShowChangeDiskWindow ('Пожалуйста, вставьте второй диск и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW_2.arc') then break;
// распаковка группы файлов посредством внешнего приложения
FindHandle1:=ISFindFiles(0,ExpandConstant('{app}\*.ogg'),ColFiles1);
ExecError:=false;
while not ExecError and ISPickFilename(FindHandle1,ExpandConstant('{app}\'),CurIndex1,true) do begin
InFilePath:=ISGetName(0);
OutFilePath:=ISGetName(1);
OutFileName:=ISGetName(2);
ExecError:=not ISExec(0, 0, 0, ExpandConstant('{tmp}\oggdec.exe'), '"'+InFilePath+'" -w "'+OutFilePath+'"',ExpandConstant('{tmp}'),OutFileName,false);
end;
ISFindFree(FindHandle1);
if ExecError then break;
*)
Error:=false;
until true;
ISDoneStop;
end;
HideControls;
end;
if (CurStep=ssPostInstall) and Error then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
procedure DeinitializeSetup;
begin
if Enabled then gdipShutdown;
#ifdef Slides
DeinitializeSlideShow;
KillTimer(0, TimerID);
#endif
end;
[/more]
как сделать чтобы
весь фон был не белого, а чёрного цвета? если надо выложу исходники
Здравствуйте помогите пожалуйста со скриптом, а то ошибку выдает не пойму из за чего
Цитата:
Здравствуйте помогите пожалуйста со скриптом, а то ошибку выдает не пойму из за чего
Ну прежде всего, скрин с ошибкой
Fenixx3000
увы я не знаю, такое не встричал, попобуй через другой скрипт распоковать.
увы я не знаю, такое не встричал, попобуй через другой скрипт распоковать.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
Предыдущая тема: поиск
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.