решено
» Inno Setup (создание инсталяционных пакетов)
log1stable
да где именно менять цвет всех окон
да где именно менять цвет всех окон
Как текструировать прогрессбар на деинсталляторе через ботву если можно пример... Заранее спасибо за помощь...
А можно ли отрезать от страницы, к примеру SelectDirPage, маленький кусок размером, к примеру 190*30? Просто мне на этом месте InnerPage нужна, SelectDirPage загораживает!!! Спасибо! Этот вопрос отпадает!
Всем привет снова, вот проблема есть в старой реализации скрипта с оформлением темным, не могу убрать из скрипта freearc, компилируется, но когда нажимаешь установить в инстале, то зависает инсталл с прогресс баром пустым, и грузит процесс setup.tmp - 25 ЦП
И последний (я надеюсь) вопрос! У меня есть много файлов которые извлекаются в папку {tmp}, естественно они имеют размер и когда на странице выбора компонентов сняты все галочки с компонетов (устанавливать нечего), то ComponentsDiskSpaceLabel выдаёт размер временных файлов, так как мне обнулить это, когда невыбран ни один компонент?
Jacsonn
Нужно не распаковывать эти файлы из секции [Files]. Тоесть, убрать с этих файлов Destdir : {tmp};, оставив Flags : dontcopy; Это нормальное явление, даже зубры программирования допускают эту ошибку. Единственное - нужно не забыть распковать эти файлы в коде, с помощью ExtractTemporaryFile, перед использованием. И неплохо удалять их после использования самостоятельно, с помощью DeleteFile поштучно, либо с помощью DelTree(ExpandConstant('{tmp}', True, True, True); всю временную папку инсталятора целиком на выходе, поскольку я начал замечать за инсталлом на инно косяк с неудалением временной папки время от времени.
Нужно не распаковывать эти файлы из секции [Files]. Тоесть, убрать с этих файлов Destdir : {tmp};, оставив Flags : dontcopy; Это нормальное явление, даже зубры программирования допускают эту ошибку. Единственное - нужно не забыть распковать эти файлы в коде, с помощью ExtractTemporaryFile, перед использованием. И неплохо удалять их после использования самостоятельно, с помощью DeleteFile поштучно, либо с помощью DelTree(ExpandConstant('{tmp}', True, True, True); всю временную папку инсталятора целиком на выходе, поскольку я начал замечать за инсталлом на инно косяк с неудалением временной папки время от времени.
Теперь всё, всем спасибо
пожалуйста помогите со скриптом FIFA12 v.1.01
BitmapResource=FonL:Files\FonL.bmp|FonL1:Files\FonL1.bmp|WizImg:Files\WizImg.bmp|FonR:Files\FonR.bmp|Cat:Files\Cat.bmp|Btn1:Files\Btn1.bmp|Btn2:Files\Btn2.bmp
Вот на этой строчке вылазиет ошибка плизз помогите.
BitmapResource=FonL:Files\FonL.bmp|FonL1:Files\FonL1.bmp|WizImg:Files\WizImg.bmp|FonR:Files\FonR.bmp|Cat:Files\Cat.bmp|Btn1:Files\Btn1.bmp|Btn2:Files\Btn2.bmp
Вот на этой строчке вылазиет ошибка плизз помогите.
Hell_Dog2011
расширенную версию ставь. или готовую сборку из моей подписи.
расширенную версию ставь. или готовую сборку из моей подписи.
спасибо
Добавлено:
Gnom3
всё равно выдаёт ошибку не мог бы ты сам посмотреть что не так там?
Добавлено:
Gnom3
всё равно выдаёт ошибку не мог бы ты сам посмотреть что не так там?
Hell_Dog2011
Цитата:
скрин ошибки покажи. болванку этого скрипта писал именно я, собственно - там реализована именно моя система вставки изображений на все страницы инсталла, и если с компилятором не накосячил, то скаченный с оригинального источника без вмешательства кривого Васи, это скрипт работает без ошибок. Единственный мой косяк - забыл вставить проверку компилятора, на котором этот скрипт можно компилить. Скрин ошибки и компилятора с тебя.
Цитата:
всё равно выдаёт ошибку
скрин ошибки покажи. болванку этого скрипта писал именно я, собственно - там реализована именно моя система вставки изображений на все страницы инсталла, и если с компилятором не накосячил, то скаченный с оригинального источника без вмешательства кривого Васи, это скрипт работает без ошибок. Единственный мой косяк - забыл вставить проверку компилятора, на котором этот скрипт можно компилить. Скрин ошибки и компилятора с тебя.
Gnom3
а что скажешь про меня?, то никак не могу убрать freearc из скрипта, хочу только дизайн тёмный оставить
а что скажешь про меня?, то никак не могу убрать freearc из скрипта, хочу только дизайн тёмный оставить
Gnom3
всё уже разобрался, единственное хочу узнать чтобы поменять полностью дизайн, в какой секции это менять?
всё уже разобрался, единственное хочу узнать чтобы поменять полностью дизайн, в какой секции это менять?
Hell_Dog2011 смотря что ты имеешь в виду под дизайном. если картинку - то в фотошопе, если
что-то еще - то проще написать заново - мой способ вставки картинок предполагает минимальный код, но и изменить способ довольно проблематично.
BUU
Скрипт с файлами в личку.
что-то еще - то проще написать заново - мой способ вставки картинок предполагает минимальный код, но и изменить способ довольно проблематично.
BUU
Скрипт с файлами в личку.
Gnom3
понятно, ну я совсем бестолоч в этом деле, так что..... а можно ли в твой скрипт вставить музыку?
и в догонку, почему не высвечиваеться надпись чего не хватает?
модули все вставил, а всё равно не работает.
понятно, ну я совсем бестолоч в этом деле, так что..... а можно ли в твой скрипт вставить музыку?
и в догонку, почему не высвечиваеться надпись чего не хватает?
модули все вставил, а всё равно не работает.
--
ну поможете мне?
Inno Setup Compiler (build 121002)
Inno ISCmplr Setup (build 121002)
InnoUltra обновлена.
Цитата:
не мой, а наш, то, что писал я для него каркас, еще не делает его моим личным.
И мы не запрешаем вставлять в него музыку, так что на здоровье.
Цитата:
какая надпись?
Inno ISCmplr Setup (build 121002)
InnoUltra обновлена.
Цитата:
а можно ли в твой скрипт вставить музыку?
не мой, а наш, то, что писал я для него каркас, еще не делает его моим личным.
И мы не запрешаем вставлять в него музыку, так что на здоровье.
Цитата:
и в догонку, почему не высвечиваеться надпись чего не хватает?
какая надпись?
Gnom3
сплеш надпись
Добавлено:
вообщем вставляю я музыку в скрипт, выдаёт такую ошибку
вот сам скрипт [more]
Код: ; --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, (c) Bulat Ziganshin <Bulat.Ziganshin@gmail.com>. More info at http://issjoiner.codeplex.com/
; --- Source: 45.iss ------------------------------------------------------------
; Скрипт создан с помощью
; IS GameScript Generator by South
; специально для www.csmania.ru
[Files]
Source: "bass.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "innocallback.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "C:\Users\Артур\Desktop\Доброе утро - Позитивчик!.mp3"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
[Code]
type
HSTREAM=DWORD;
TTimerProc=procedure(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);
var
MP3List:TStringList;
CurrentMP3:integer;
hMP3:HWND;
TimerID:LongWord;
function SetTimer(hWnd:HWND;nIDEvent,uElapse:UINT;lpTimerFunc:LongWord{TFNTimerProc}):UINT; external 'SetTimer@user32.dll stdcall delayload';
function KillTimer(hWnd:HWND;uIDEvent:UINT):BOOL; external 'KillTimer@user32.dll stdcall delayload';
function BASS_ChannelIsActive(Handle:HWND):DWORD; external 'BASS_ChannelIsActive@files:bass.dll stdcall';
function BASS_SetConfig(Option,Value:DWORD):DWORD; external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_Init(Device:integer;Freq,Flags:DWORD;Win:HWND;CLSID:integer):boolean; external 'BASS_Init@files:bass.dll stdcall delayload';
function BASS_StreamCreateFile(Mem:BOOL;f:PChar;Offset:DWORD;Length:DWORD;Flags:DWORD):HSTREAM; external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_StreamFree(Handle:HWND):boolean; external 'BASS_StreamFree@files:bass.dll stdcall';
function BASS_ChannelPlay(Handle:HWND;Restart:boolean):boolean; external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_Start: Boolean; external 'BASS_Start@files:bass.dll stdcall';
function BASS_Stop: Boolean; external 'BASS_Stop@files:bass.dll stdcall';
function BASS_Free: Boolean; external 'BASS_Free@files:bass.dll stdcall delayload';
function WrapTimerProc(CallBack:TTimerProc;ParamCount:integer):LongWord; external 'wrapcallback@files:innocallback.dll stdcall';
procedure TimerTick(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);
begin
if BASS_ChannelIsActive(hMP3)=0 then begin
BASS_Stop;
BASS_StreamFree(hMP3);
hMP3:=BASS_StreamCreateFile(False,PChar(MP3List.Strings[CurrentMP3]),0,0,0);
BASS_Start;
if hMP3<>0 then
if BASS_ChannelPlay(hMP3,True) then begin
CurrentMP3:=CurrentMP3+1;
if CurrentMP3>MP3List.Count-1 then CurrentMP3:=0;
end;
end;
end;
function InitializeSetup1:boolean;
begin
ExtractTemporaryFile('Доброе утро - Позитивчик!.mp3');
MP3List:=TStringList.Create;
MP3List.Add(ExpandConstant('{tmp}')+'\Доброе утро - Позитивчик!.mp3');
CurrentMP3:=0;
Result:=True;
end;
procedure InitializeWizard1;
begin
TimerID:=SetTimer(0,0,500,WrapTimerProc(@TimerTick,5));
BASS_Init(-1,44100,0,0,0);
BASS_SetConfig(5,100);
BASS_SetConfig(6,100);
end;
procedure DeinitializeSetup1;
begin
KillTimer(0,TimerID);
BASS_Stop;
BASS_Free;
MP3List.Free;
end;
[Setup]
; --- Source: FIFA12.iss ------------------------------------------------------------
;-------------------------------------------------------------------------------------------------------------------------------;
;****** **** ** **** **** ;
; ** ** *** ** ** ;
; ** ** ** ** ;
; ** ** ****** **** ****** **** **** ** **** ********** ** ********** ;
; ** ** **** ** ** **** ** ** ** ** ** ** ** ** ;
; ****** ** ** ** ** ** ** ************** ** ****** ;
; ** ** ** ** ** ** ****** ** ** **** ;
; ** ** ** ** ** ** ** ** ** ** ** ** ** ;
;****** **** ********** ********** ****** ****** **** **** ********** ********** ********** ;
; ************** ;
; ** ** ** ;
; ** ;
; ** ********** ******** ****** ** ;
; ** ** ** ** ** ** ** ;
; ** ************** ********** ** ** ** ;
; ** ** ** ** ** ** ** ;
; ** ** ** ** ** ** ** ** ;
; ****** ********** ******** ** **** ** **** ;
;-------------------------------------------------------------------------------------------------------------------------------;
; Date: 01.05.2012;
; Script version: 1.01;
; © KrinkelsTeam;
;-------------------------------------------------------------------------------------------------------------------------------;
//===== [озу для распаковки] =====\\
#define NeedMem "128"
#define NeedSize "10000"
#define TNeedSize "15000"
;#define Components
;#define records
//===== [Дополнительные библиотеки (для ISDone)] =====\\
;#define PrecompInside
;#define SrepInside
#define facompress
;#define precomp "0.42"
;#define unrar
;#define XDelta
;#define PackZIP
//===== [название игры] =====\\
#define GameName "FIFA 12"
//===== [версия игры] =====\\
#define GameVersion "1.0.1"
//===== [имя экзешника игры] =====\\
#define ExeFile "Launcher.exe"
//===== [версия инсталла] =====\\
#define InstallVersion "1.01"
//===== [название группы] =====\\
#define Company "Krinkels Team"
//===== [ник репакера] =====\\
#define RePacker "Krinkels Team"
[Setup]
AppName={#GameName}
DefaultDirName={pf}\{#Company}\{#GameName}
DefaultGroupName={#Company}\{#GameName}
AppVerName={#GameName} v{#GameVersion} / RePack by {#RePacker}
VersionInfoDescription={#GameName} / RePack by {#RePacker}
VersionInfoTextVersion={#InstallVersion}
VersionInfoVersion={#InstallVersion}
VersionInfoCompany={#Company}
AppCopyright=© {#Company}
InfoBeforeFile=Info.rtf
ShowTasksTreeLines=Yes
DisableProgramGroupPage=True
BitmapResource=FonL:Files\FonL.bmp|FonL1:Files\FonL1.bmp|WizImg:Files\WizImg.bmp|FonR:Files\FonR.bmp|Cat:Files\Cat.bmp|Btn1:Files\Btn1.bmp|Btn2:Files\Btn2.bmp
[CustomMessages]
ru.Extracted=Распаковка архивов...
ru.Error=Ошибка распаковки!
ru.ElapsedTime=Прошло:
ru.RemainingTime=Осталось:
ru.ExtractedFile=Извлекается файл:
ru.Run=Запустить {#GameName}
ru.Uninstall=Удалить {#GameName}
ru.Text=Язык интерфейса:
ru.Voice=Язык озвучки:
ru.Russian=Русский.
ru.English=Английский.
ru.CreateDesktopIcon=Создать ярлык на Рабочем столе.
ru.FreeSpace=Свободно места на выбранном диске...
ru.TNeedSpace=Для распаковки требуется................
ru.Redist=Дополнительное ПО:
ru.DirectX=Обновить / Установить DirectX.
ru.VCRedist=Обновить / Установить VCRedist.
ru.StWelcome=Приветствие
ru.StCats=Каталоги
ru.StTasks=Задачи
ru.StInfo=Информация
ru.StReady=Подготовка
ru.StInstalling=Установка
ru.StFinished=Завершение
ru.TB=Тб
ru.GB=Гб
ru.MB=Мб
[Languages]
Name: ru; MessagesFile: Lang\Russian.isl
//===== [компоненты] =====\\:
[Types]
Name: full; Description: Полная установка; Flags: iscustom
[Components]
Name: Redist; Description: {cm:Redist}; Types: full; Flags: collapsed
Name: Redist\DirectX; Description: {cm:DirectX}; Types: full;
Name: Redist\VCRedist; Description: {cm:VCRedist}; Types: full;
Name: CreateDesktopIcon; Description: {cm:CreateDesktopIcon}; Types: full; Flags: collapsed
[Run]
Filename: {src}\Redist\DXSETUP.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\DirectX; Check: CheckError;
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\VCRedist; Check: Not IsWin64 and CheckError;
Filename: {src}\Redist\vcredist_x64.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\VCRedist; Check: IsWin64 and CheckError;
//===== [иконки] =====\\:
[Icons]
Name: {group}\{cm:Run}; Filename: {app}\{#ExeFile}; Check: CheckError and NoIconsCheck;
Name: {group}\{cm:Uninstall}; Filename: {uninstallexe}; Check: CheckError and NoIconsCheck;
Name: {commondesktop}\{#GameName}; Filename: {app}\{#ExeFile}; Workingdir: {app}; Components: CreateDesktopIcon; Check: CheckError;
[UninstallDelete]
Type: FilesAndOrDirs; Name: {app}
[Code]
#include "Modules\Header.iss"
#include "Modules\ISDoneHeader.iss"
procedure InitializeWizard2();
begin
with WizardForm do begin
AutoScroll := False;
ClientHeight := ScaleY(400);
ClientWidth := ScaleX(800);
Font.Color:= clWhite;
OuterNotebook.SetBounds(ScaleX(0), ScaleY(0), ScaleX(579), ScaleY(400));
InnerNotebook.SetBounds(ScaleX(10), ScaleY(10), ScaleX(560), ScaleY(380));
Position:= poScreenCenter;
OnMouseMove:= @WizardLabelMove;
for n := 0 to OuterNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(0, 0, OuterNotebook.Pages[n].ClientWidth, OuterNotebook.Pages[n].ClientHeight);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL');
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(ScaleX(40), ScaleY(79), ScaleX(520), ScaleY(190));
Bitmap.LoadFromResourceName(HInstance, '_IS_WizImg');
end;
end;
for n := 0 to InnerNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := InnerNotebook.Pages[n];
SetBounds(-InnerNotebook.Left, -InnerNotebook.Top, InnerNotebook.Pages[n].ClientWidth + InnerNotebook.Left, InnerNotebook.Pages[n].ClientHeight + InnerNotebook.Top);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL1');
Name := 'Bgnd_' + InnerNotebook.Pages[n].Name;
OnMouseMove:= @WizardLabelMove;
end;
end;
InnerPage.Color:= $272525;
MainPanel.Color:= $585858;
MainPanel.SetBounds(ScaleX(85), ScaleY(25), ScaleX(470), ScaleY(40));
PageNameLabel.Font:= WizardForm.Font;
PageNameLabel.SetBounds(ScaleX(0), ScaleY(3), ScaleX(470), ScaleY(14));
PageDescriptionLabel.SetBounds(ScaleX(10), ScaleY(15), ScaleX(470), ScaleY(26));
with WelcomeLabel1 do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with WelcomeLabel2 do begin
SetBounds(ScaleX(50), ScaleY(285), ScaleX(500), ScaleY(75));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
InfoBeforeClickLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(20));
InfoBeforeMemo.SetBounds(ScaleX(40), ScaleY(110), ScaleX(497), ScaleY(230));
InfoBeforeMemo.Color:= $272525;
InfoBeforeMemo.TabStop:= False;
SelectDirBrowseLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(40));
SelectDirLabel.SetBounds(ScaleX(50), ScaleY(129), ScaleX(250), ScaleY(20));
DirEdit.SetBounds(ScaleX(50), ScaleY(155), ScaleX(370), ScaleY(21));
DirEdit.Color:= $272525;
DirEdit.TabStop:=False;
DirEdit.OnChange:= @GetFreeSpaceCaption;
DirBrowseButton.SetBounds(ScaleX(430), ScaleY(155), ScaleX(80), ScaleY(23));
DirBrowseButton.Font.Color:= clBlack;
FreeSpaceLbl:= Tlabel.Create(WizardForm);
FreeSpaceLbl.Parent:= SelectDirPage;
FreeSpaceLbl.SetBounds(ScaleX(50), ScaleY(180), ScaleX(450), ScaleY(20));
DiskSpaceLabel.SetBounds(ScaleX(50), ScaleY(200), ScaleX(450), ScaleY(20));
TNeedSizeLbl:= Tlabel.Create(WizardForm);
TNeedSizeLbl.Parent:= SelectDirPage;
TNeedSizeLbl.SetBounds(ScaleX(50), ScaleY(220), ScaleX(450), ScaleY(20));
SelectStartMenuFolderLabel.Parent:= SelectDirPage;
SelectStartMenuFolderLabel.SetBounds(ScaleX(50), ScaleY(260), ScaleX(320), ScaleY(20));
GroupEdit.Parent:= SelectDirPage;
GroupEdit.SetBounds(ScaleX(50), ScaleY(285), ScaleX(370), ScaleY(21));
GroupEdit.Color:= $272525;
GroupBrowseButton.Parent:= SelectDirPage;
GroupBrowseButton.SetBounds(ScaleX(430), ScaleY(285), ScaleX(80), ScaleY(23));
GroupBrowseButton.Font.Color:= clBlack;
NoIconsCb:= TNewCheckBox.Create(WizardForm);
NoIconsCb.Parent:= WizardForm.SelectDirPage;
NoIconsCb.SetBounds(ScaleX(50), ScaleY(310), ScaleX(20), ScaleY(20));
NoIconsCb.OnClick:= @CheckNoIcons;
SelectComponentsLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ComponentsList.SetBounds(ScaleX(40), ScaleY(130), ScaleX(497), ScaleY(170));
ComponentsList.Color:= $272525;
ComponentsList.TreeViewStyle := True;
ComponentsDiskSpaceLabel.SetBounds(ScaleX(40), ScaleY(310), ScaleX(497), ScaleY(20));
ReadyLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ReadyMemo.SetBounds(ScaleX(40), ScaleY(140), ScaleX(497), ScaleY(210));
ReadyMemo.Color:= $272525;
ReadyMemo.ScrollBars:= ssVertical;
StatusLabel.SetBounds(ScaleX(50), ScaleY(100), ScaleX(417), ScaleY(20));
FilenameLabel.SetBounds(ScaleX(50), ScaleY(125), ScaleX(417), ScaleY(20));
ProgressGauge.SetBounds(ScaleX(50), ScaleY(150), ScaleX(480), ScaleY(21));
LabelPct:= TLabel.Create(WizardForm);
with LabelPct do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(230), ScaleY(200), ScaleX(460), ScaleY(41));
Font.Size:= 20;
Alignment:= taCenter;
Font.Name:= 'Verdana';
end;
LabelTime:= TLabel.Create(WizardForm);
with LabelTime do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(30), ScaleY(180), ScaleX(460), ScaleY(21));
AutoSize:= False;
Alignment:= taCenter;
end;
Bevel.Parent:= SelectDirPage;
Bevel.SetBounds(ScaleX(40), ScaleY(135), ScaleX(497), ScaleY(110));
Bevel.Shape:= bsFrame;
Bevel1.Parent:= SelectDirPage;
Bevel1.SetBounds(ScaleX(40), ScaleY(265), ScaleX(497), ScaleY(70));
Bevel1.Shape:= bsFrame;
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm.SelectDirPage;
SetBounds(ScaleX(70), ScaleY(313), ScaleX(200), ScaleY(20));
Caption:= NoIconsCheck.Caption;
Cursor:= crHand;
OnClick:= @NoIconsLblClick;
end;
with FinishedHeadingLabel do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with FinishedLabel do begin
SetBounds(ScaleX(50), ScaleY(283), ScaleX(500), ScaleY(83));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := WizardForm;
Left := ScaleX(579);
Top := ScaleY(0);
Width := ScaleX(221);
Height := ScaleY(400);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonR');
end;
with WizardSmallBitmapImage do begin
Parent := WizardForm;
Left := ScaleX(592);
Width := ScaleX(199);
Height := ScaleY(39);
Bitmap.LoadFromResourceName(HInstance, '_IS_Cat');
end;
NextButton.SetBounds(ScaleX(697), ScaleY(335), ScaleX(80), ScaleY(30));
BackButton.SetBounds(ScaleX(605), ScaleY(335), ScaleX(80), ScaleY(30));
CancelButton.SetBounds(0,0,0,0);
WizardLabel:= TLabel.Create(WizardForm)
WizardLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(WizardForm.Width), ScaleY(WizardForm.Height))
WizardLabel.Transparent:= True;
WizardLabel.AutoSize:=false;
WizardLabel.OnMouseMove:=@WizardLabelMove
WizardLabel.Parent:= WizardForm;
LoadButtonImage('_IS_Btn1', BackButton);
LoadButtonImage('_IS_Btn1', NextButton);
LoadButtonImage('_IS_Btn2', DirBrowseButton);
LoadButtonImage('_IS_Btn2', GroupBrowseButton);
end;
for n:=0 to 6 do begin
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm;
Transparent:= True;
SetBounds(ScaleX(615), 0, ScaleX(110), ScaleY(20));
AutoSize:= True;
Font.Size:= 12;
Font.Style:= [fsBold];
Font.Color:= clBlack;
case n of
0: begin
Top:= ScaleY(20);
Caption:= ExpandConstant('{cm:StWelcome}');
end;
1: begin
Top:= ScaleY(62);
Caption:= ExpandConstant('{cm:StInfo}');
end;
2: begin
Top:= ScaleY(105);
Caption:= ExpandConstant('{cm:StCats}');
end;
3: begin
Top:= ScaleY(147);
Caption:= ExpandConstant('{cm:StTasks}');
end;
4: begin
Top:= ScaleY(192);
Caption:= ExpandConstant('{cm:StReady}');
end;
5: begin
Top:= ScaleY(235);
Caption:= ExpandConstant('{cm:StInstalling}');
end;
6: begin
Top:= ScaleY(277);
Caption:= ExpandConstant('{cm:StFinished}');
end;
end;
end;
end;
SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000);
end;
Procedure CurPageChanged2(CurPageID: Integer);
Begin
case CurPageID of
wpWelcome: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(9);
wpInfoBefore: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(51);
wpSelectDir:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(94);
GetFreeSpaceCaption(nil);
end;
wpSelectComponents: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(138);
wpReady: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(182);
wpInstalling:
begin
WizardForm.CancelButton.SetBounds(ScaleX(697),ScaleY(335),ScaleX(80),ScaleY(30));
LoadButtonImage('_IS_BTN1', WizardForm.CancelButton);
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(226);
end;
wpFinished:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(269);
if ISDoneError then begin
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted);
end;
end;
end;
UpdateButtons();
end;
procedure CurStepChanged2(CurStep: TSetupStep);
var
Comps1,Comps2,Comps3:cardinal;
PCFVer: Double;
#ifdef Components
TmpValue: Cardinal;
#endif
// переменные для примеров
// FindHandle1,ColFiles1,CurIndex1,tmp:integer;
// ExecError:boolean;
// InFilePath,OutFilePath,OutFileName:PAnsiChar;
begin
if CurStep = ssInstall then begin
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
ISDoneCancel:=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
PCFVer:={#precomp};
#if "0.38" == precomp
ExtractTemporaryFile('precomp038.exe');
#else
#if "0.4" == precomp
ExtractTemporaryFile('precomp040.exe');
#else
#if "0.41" == precomp
ExtractTemporaryFile('precomp041.exe');
#else
#if "0.42" == precomp
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#else
PCFVer:=0;
#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
ISDoneError:=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}\*.arc'), 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, 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;
*)
ISDoneError:=false;
until true;
ISDoneStop;
end;
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
[Setup]
; --- Dispatching code ------------------------------------------------------------
[Code]
function InitializeSetup(): Boolean;
begin
Result := InitializeSetup1(); if not Result then exit;
end;
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;
procedure DeinitializeSetup();
begin
DeinitializeSetup1();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged2(CurPageID);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CurStepChanged2(CurStep);
end;
сплеш надпись
Добавлено:
вообщем вставляю я музыку в скрипт, выдаёт такую ошибку
вот сам скрипт [more]
Код: ; --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, (c) Bulat Ziganshin <Bulat.Ziganshin@gmail.com>. More info at http://issjoiner.codeplex.com/
; --- Source: 45.iss ------------------------------------------------------------
; Скрипт создан с помощью
; IS GameScript Generator by South
; специально для www.csmania.ru
[Files]
Source: "bass.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "innocallback.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "C:\Users\Артур\Desktop\Доброе утро - Позитивчик!.mp3"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
[Code]
type
HSTREAM=DWORD;
TTimerProc=procedure(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);
var
MP3List:TStringList;
CurrentMP3:integer;
hMP3:HWND;
TimerID:LongWord;
function SetTimer(hWnd:HWND;nIDEvent,uElapse:UINT;lpTimerFunc:LongWord{TFNTimerProc}):UINT; external 'SetTimer@user32.dll stdcall delayload';
function KillTimer(hWnd:HWND;uIDEvent:UINT):BOOL; external 'KillTimer@user32.dll stdcall delayload';
function BASS_ChannelIsActive(Handle:HWND):DWORD; external 'BASS_ChannelIsActive@files:bass.dll stdcall';
function BASS_SetConfig(Option,Value:DWORD):DWORD; external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_Init(Device:integer;Freq,Flags:DWORD;Win:HWND;CLSID:integer):boolean; external 'BASS_Init@files:bass.dll stdcall delayload';
function BASS_StreamCreateFile(Mem:BOOL;f:PChar;Offset:DWORD;Length:DWORD;Flags:DWORD):HSTREAM; external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_StreamFree(Handle:HWND):boolean; external 'BASS_StreamFree@files:bass.dll stdcall';
function BASS_ChannelPlay(Handle:HWND;Restart:boolean):boolean; external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_Start: Boolean; external 'BASS_Start@files:bass.dll stdcall';
function BASS_Stop: Boolean; external 'BASS_Stop@files:bass.dll stdcall';
function BASS_Free: Boolean; external 'BASS_Free@files:bass.dll stdcall delayload';
function WrapTimerProc(CallBack:TTimerProc;ParamCount:integer):LongWord; external 'wrapcallback@files:innocallback.dll stdcall';
procedure TimerTick(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);
begin
if BASS_ChannelIsActive(hMP3)=0 then begin
BASS_Stop;
BASS_StreamFree(hMP3);
hMP3:=BASS_StreamCreateFile(False,PChar(MP3List.Strings[CurrentMP3]),0,0,0);
BASS_Start;
if hMP3<>0 then
if BASS_ChannelPlay(hMP3,True) then begin
CurrentMP3:=CurrentMP3+1;
if CurrentMP3>MP3List.Count-1 then CurrentMP3:=0;
end;
end;
end;
function InitializeSetup1:boolean;
begin
ExtractTemporaryFile('Доброе утро - Позитивчик!.mp3');
MP3List:=TStringList.Create;
MP3List.Add(ExpandConstant('{tmp}')+'\Доброе утро - Позитивчик!.mp3');
CurrentMP3:=0;
Result:=True;
end;
procedure InitializeWizard1;
begin
TimerID:=SetTimer(0,0,500,WrapTimerProc(@TimerTick,5));
BASS_Init(-1,44100,0,0,0);
BASS_SetConfig(5,100);
BASS_SetConfig(6,100);
end;
procedure DeinitializeSetup1;
begin
KillTimer(0,TimerID);
BASS_Stop;
BASS_Free;
MP3List.Free;
end;
[Setup]
; --- Source: FIFA12.iss ------------------------------------------------------------
;-------------------------------------------------------------------------------------------------------------------------------;
;****** **** ** **** **** ;
; ** ** *** ** ** ;
; ** ** ** ** ;
; ** ** ****** **** ****** **** **** ** **** ********** ** ********** ;
; ** ** **** ** ** **** ** ** ** ** ** ** ** ** ;
; ****** ** ** ** ** ** ** ************** ** ****** ;
; ** ** ** ** ** ** ****** ** ** **** ;
; ** ** ** ** ** ** ** ** ** ** ** ** ** ;
;****** **** ********** ********** ****** ****** **** **** ********** ********** ********** ;
; ************** ;
; ** ** ** ;
; ** ;
; ** ********** ******** ****** ** ;
; ** ** ** ** ** ** ** ;
; ** ************** ********** ** ** ** ;
; ** ** ** ** ** ** ** ;
; ** ** ** ** ** ** ** ** ;
; ****** ********** ******** ** **** ** **** ;
;-------------------------------------------------------------------------------------------------------------------------------;
; Date: 01.05.2012;
; Script version: 1.01;
; © KrinkelsTeam;
;-------------------------------------------------------------------------------------------------------------------------------;
//===== [озу для распаковки] =====\\
#define NeedMem "128"
#define NeedSize "10000"
#define TNeedSize "15000"
;#define Components
;#define records
//===== [Дополнительные библиотеки (для ISDone)] =====\\
;#define PrecompInside
;#define SrepInside
#define facompress
;#define precomp "0.42"
;#define unrar
;#define XDelta
;#define PackZIP
//===== [название игры] =====\\
#define GameName "FIFA 12"
//===== [версия игры] =====\\
#define GameVersion "1.0.1"
//===== [имя экзешника игры] =====\\
#define ExeFile "Launcher.exe"
//===== [версия инсталла] =====\\
#define InstallVersion "1.01"
//===== [название группы] =====\\
#define Company "Krinkels Team"
//===== [ник репакера] =====\\
#define RePacker "Krinkels Team"
[Setup]
AppName={#GameName}
DefaultDirName={pf}\{#Company}\{#GameName}
DefaultGroupName={#Company}\{#GameName}
AppVerName={#GameName} v{#GameVersion} / RePack by {#RePacker}
VersionInfoDescription={#GameName} / RePack by {#RePacker}
VersionInfoTextVersion={#InstallVersion}
VersionInfoVersion={#InstallVersion}
VersionInfoCompany={#Company}
AppCopyright=© {#Company}
InfoBeforeFile=Info.rtf
ShowTasksTreeLines=Yes
DisableProgramGroupPage=True
BitmapResource=FonL:Files\FonL.bmp|FonL1:Files\FonL1.bmp|WizImg:Files\WizImg.bmp|FonR:Files\FonR.bmp|Cat:Files\Cat.bmp|Btn1:Files\Btn1.bmp|Btn2:Files\Btn2.bmp
[CustomMessages]
ru.Extracted=Распаковка архивов...
ru.Error=Ошибка распаковки!
ru.ElapsedTime=Прошло:
ru.RemainingTime=Осталось:
ru.ExtractedFile=Извлекается файл:
ru.Run=Запустить {#GameName}
ru.Uninstall=Удалить {#GameName}
ru.Text=Язык интерфейса:
ru.Voice=Язык озвучки:
ru.Russian=Русский.
ru.English=Английский.
ru.CreateDesktopIcon=Создать ярлык на Рабочем столе.
ru.FreeSpace=Свободно места на выбранном диске...
ru.TNeedSpace=Для распаковки требуется................
ru.Redist=Дополнительное ПО:
ru.DirectX=Обновить / Установить DirectX.
ru.VCRedist=Обновить / Установить VCRedist.
ru.StWelcome=Приветствие
ru.StCats=Каталоги
ru.StTasks=Задачи
ru.StInfo=Информация
ru.StReady=Подготовка
ru.StInstalling=Установка
ru.StFinished=Завершение
ru.TB=Тб
ru.GB=Гб
ru.MB=Мб
[Languages]
Name: ru; MessagesFile: Lang\Russian.isl
//===== [компоненты] =====\\:
[Types]
Name: full; Description: Полная установка; Flags: iscustom
[Components]
Name: Redist; Description: {cm:Redist}; Types: full; Flags: collapsed
Name: Redist\DirectX; Description: {cm:DirectX}; Types: full;
Name: Redist\VCRedist; Description: {cm:VCRedist}; Types: full;
Name: CreateDesktopIcon; Description: {cm:CreateDesktopIcon}; Types: full; Flags: collapsed
[Run]
Filename: {src}\Redist\DXSETUP.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\DirectX; Check: CheckError;
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\VCRedist; Check: Not IsWin64 and CheckError;
Filename: {src}\Redist\vcredist_x64.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\VCRedist; Check: IsWin64 and CheckError;
//===== [иконки] =====\\:
[Icons]
Name: {group}\{cm:Run}; Filename: {app}\{#ExeFile}; Check: CheckError and NoIconsCheck;
Name: {group}\{cm:Uninstall}; Filename: {uninstallexe}; Check: CheckError and NoIconsCheck;
Name: {commondesktop}\{#GameName}; Filename: {app}\{#ExeFile}; Workingdir: {app}; Components: CreateDesktopIcon; Check: CheckError;
[UninstallDelete]
Type: FilesAndOrDirs; Name: {app}
[Code]
#include "Modules\Header.iss"
#include "Modules\ISDoneHeader.iss"
procedure InitializeWizard2();
begin
with WizardForm do begin
AutoScroll := False;
ClientHeight := ScaleY(400);
ClientWidth := ScaleX(800);
Font.Color:= clWhite;
OuterNotebook.SetBounds(ScaleX(0), ScaleY(0), ScaleX(579), ScaleY(400));
InnerNotebook.SetBounds(ScaleX(10), ScaleY(10), ScaleX(560), ScaleY(380));
Position:= poScreenCenter;
OnMouseMove:= @WizardLabelMove;
for n := 0 to OuterNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(0, 0, OuterNotebook.Pages[n].ClientWidth, OuterNotebook.Pages[n].ClientHeight);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL');
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(ScaleX(40), ScaleY(79), ScaleX(520), ScaleY(190));
Bitmap.LoadFromResourceName(HInstance, '_IS_WizImg');
end;
end;
for n := 0 to InnerNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := InnerNotebook.Pages[n];
SetBounds(-InnerNotebook.Left, -InnerNotebook.Top, InnerNotebook.Pages[n].ClientWidth + InnerNotebook.Left, InnerNotebook.Pages[n].ClientHeight + InnerNotebook.Top);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL1');
Name := 'Bgnd_' + InnerNotebook.Pages[n].Name;
OnMouseMove:= @WizardLabelMove;
end;
end;
InnerPage.Color:= $272525;
MainPanel.Color:= $585858;
MainPanel.SetBounds(ScaleX(85), ScaleY(25), ScaleX(470), ScaleY(40));
PageNameLabel.Font:= WizardForm.Font;
PageNameLabel.SetBounds(ScaleX(0), ScaleY(3), ScaleX(470), ScaleY(14));
PageDescriptionLabel.SetBounds(ScaleX(10), ScaleY(15), ScaleX(470), ScaleY(26));
with WelcomeLabel1 do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with WelcomeLabel2 do begin
SetBounds(ScaleX(50), ScaleY(285), ScaleX(500), ScaleY(75));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
InfoBeforeClickLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(20));
InfoBeforeMemo.SetBounds(ScaleX(40), ScaleY(110), ScaleX(497), ScaleY(230));
InfoBeforeMemo.Color:= $272525;
InfoBeforeMemo.TabStop:= False;
SelectDirBrowseLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(40));
SelectDirLabel.SetBounds(ScaleX(50), ScaleY(129), ScaleX(250), ScaleY(20));
DirEdit.SetBounds(ScaleX(50), ScaleY(155), ScaleX(370), ScaleY(21));
DirEdit.Color:= $272525;
DirEdit.TabStop:=False;
DirEdit.OnChange:= @GetFreeSpaceCaption;
DirBrowseButton.SetBounds(ScaleX(430), ScaleY(155), ScaleX(80), ScaleY(23));
DirBrowseButton.Font.Color:= clBlack;
FreeSpaceLbl:= Tlabel.Create(WizardForm);
FreeSpaceLbl.Parent:= SelectDirPage;
FreeSpaceLbl.SetBounds(ScaleX(50), ScaleY(180), ScaleX(450), ScaleY(20));
DiskSpaceLabel.SetBounds(ScaleX(50), ScaleY(200), ScaleX(450), ScaleY(20));
TNeedSizeLbl:= Tlabel.Create(WizardForm);
TNeedSizeLbl.Parent:= SelectDirPage;
TNeedSizeLbl.SetBounds(ScaleX(50), ScaleY(220), ScaleX(450), ScaleY(20));
SelectStartMenuFolderLabel.Parent:= SelectDirPage;
SelectStartMenuFolderLabel.SetBounds(ScaleX(50), ScaleY(260), ScaleX(320), ScaleY(20));
GroupEdit.Parent:= SelectDirPage;
GroupEdit.SetBounds(ScaleX(50), ScaleY(285), ScaleX(370), ScaleY(21));
GroupEdit.Color:= $272525;
GroupBrowseButton.Parent:= SelectDirPage;
GroupBrowseButton.SetBounds(ScaleX(430), ScaleY(285), ScaleX(80), ScaleY(23));
GroupBrowseButton.Font.Color:= clBlack;
NoIconsCb:= TNewCheckBox.Create(WizardForm);
NoIconsCb.Parent:= WizardForm.SelectDirPage;
NoIconsCb.SetBounds(ScaleX(50), ScaleY(310), ScaleX(20), ScaleY(20));
NoIconsCb.OnClick:= @CheckNoIcons;
SelectComponentsLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ComponentsList.SetBounds(ScaleX(40), ScaleY(130), ScaleX(497), ScaleY(170));
ComponentsList.Color:= $272525;
ComponentsList.TreeViewStyle := True;
ComponentsDiskSpaceLabel.SetBounds(ScaleX(40), ScaleY(310), ScaleX(497), ScaleY(20));
ReadyLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ReadyMemo.SetBounds(ScaleX(40), ScaleY(140), ScaleX(497), ScaleY(210));
ReadyMemo.Color:= $272525;
ReadyMemo.ScrollBars:= ssVertical;
StatusLabel.SetBounds(ScaleX(50), ScaleY(100), ScaleX(417), ScaleY(20));
FilenameLabel.SetBounds(ScaleX(50), ScaleY(125), ScaleX(417), ScaleY(20));
ProgressGauge.SetBounds(ScaleX(50), ScaleY(150), ScaleX(480), ScaleY(21));
LabelPct:= TLabel.Create(WizardForm);
with LabelPct do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(230), ScaleY(200), ScaleX(460), ScaleY(41));
Font.Size:= 20;
Alignment:= taCenter;
Font.Name:= 'Verdana';
end;
LabelTime:= TLabel.Create(WizardForm);
with LabelTime do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(30), ScaleY(180), ScaleX(460), ScaleY(21));
AutoSize:= False;
Alignment:= taCenter;
end;
Bevel.Parent:= SelectDirPage;
Bevel.SetBounds(ScaleX(40), ScaleY(135), ScaleX(497), ScaleY(110));
Bevel.Shape:= bsFrame;
Bevel1.Parent:= SelectDirPage;
Bevel1.SetBounds(ScaleX(40), ScaleY(265), ScaleX(497), ScaleY(70));
Bevel1.Shape:= bsFrame;
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm.SelectDirPage;
SetBounds(ScaleX(70), ScaleY(313), ScaleX(200), ScaleY(20));
Caption:= NoIconsCheck.Caption;
Cursor:= crHand;
OnClick:= @NoIconsLblClick;
end;
with FinishedHeadingLabel do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with FinishedLabel do begin
SetBounds(ScaleX(50), ScaleY(283), ScaleX(500), ScaleY(83));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := WizardForm;
Left := ScaleX(579);
Top := ScaleY(0);
Width := ScaleX(221);
Height := ScaleY(400);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonR');
end;
with WizardSmallBitmapImage do begin
Parent := WizardForm;
Left := ScaleX(592);
Width := ScaleX(199);
Height := ScaleY(39);
Bitmap.LoadFromResourceName(HInstance, '_IS_Cat');
end;
NextButton.SetBounds(ScaleX(697), ScaleY(335), ScaleX(80), ScaleY(30));
BackButton.SetBounds(ScaleX(605), ScaleY(335), ScaleX(80), ScaleY(30));
CancelButton.SetBounds(0,0,0,0);
WizardLabel:= TLabel.Create(WizardForm)
WizardLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(WizardForm.Width), ScaleY(WizardForm.Height))
WizardLabel.Transparent:= True;
WizardLabel.AutoSize:=false;
WizardLabel.OnMouseMove:=@WizardLabelMove
WizardLabel.Parent:= WizardForm;
LoadButtonImage('_IS_Btn1', BackButton);
LoadButtonImage('_IS_Btn1', NextButton);
LoadButtonImage('_IS_Btn2', DirBrowseButton);
LoadButtonImage('_IS_Btn2', GroupBrowseButton);
end;
for n:=0 to 6 do begin
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm;
Transparent:= True;
SetBounds(ScaleX(615), 0, ScaleX(110), ScaleY(20));
AutoSize:= True;
Font.Size:= 12;
Font.Style:= [fsBold];
Font.Color:= clBlack;
case n of
0: begin
Top:= ScaleY(20);
Caption:= ExpandConstant('{cm:StWelcome}');
end;
1: begin
Top:= ScaleY(62);
Caption:= ExpandConstant('{cm:StInfo}');
end;
2: begin
Top:= ScaleY(105);
Caption:= ExpandConstant('{cm:StCats}');
end;
3: begin
Top:= ScaleY(147);
Caption:= ExpandConstant('{cm:StTasks}');
end;
4: begin
Top:= ScaleY(192);
Caption:= ExpandConstant('{cm:StReady}');
end;
5: begin
Top:= ScaleY(235);
Caption:= ExpandConstant('{cm:StInstalling}');
end;
6: begin
Top:= ScaleY(277);
Caption:= ExpandConstant('{cm:StFinished}');
end;
end;
end;
end;
SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000);
end;
Procedure CurPageChanged2(CurPageID: Integer);
Begin
case CurPageID of
wpWelcome: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(9);
wpInfoBefore: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(51);
wpSelectDir:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(94);
GetFreeSpaceCaption(nil);
end;
wpSelectComponents: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(138);
wpReady: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(182);
wpInstalling:
begin
WizardForm.CancelButton.SetBounds(ScaleX(697),ScaleY(335),ScaleX(80),ScaleY(30));
LoadButtonImage('_IS_BTN1', WizardForm.CancelButton);
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(226);
end;
wpFinished:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(269);
if ISDoneError then begin
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted);
end;
end;
end;
UpdateButtons();
end;
procedure CurStepChanged2(CurStep: TSetupStep);
var
Comps1,Comps2,Comps3:cardinal;
PCFVer: Double;
#ifdef Components
TmpValue: Cardinal;
#endif
// переменные для примеров
// FindHandle1,ColFiles1,CurIndex1,tmp:integer;
// ExecError:boolean;
// InFilePath,OutFilePath,OutFileName:PAnsiChar;
begin
if CurStep = ssInstall then begin
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
ISDoneCancel:=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
PCFVer:={#precomp};
#if "0.38" == precomp
ExtractTemporaryFile('precomp038.exe');
#else
#if "0.4" == precomp
ExtractTemporaryFile('precomp040.exe');
#else
#if "0.41" == precomp
ExtractTemporaryFile('precomp041.exe');
#else
#if "0.42" == precomp
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#else
PCFVer:=0;
#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
ISDoneError:=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}\*.arc'), 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, 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;
*)
ISDoneError:=false;
until true;
ISDoneStop;
end;
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
[Setup]
; --- Dispatching code ------------------------------------------------------------
[Code]
function InitializeSetup(): Boolean;
begin
Result := InitializeSetup1(); if not Result then exit;
end;
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;
procedure DeinitializeSetup();
begin
DeinitializeSetup1();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged2(CurPageID);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CurStepChanged2(CurStep);
end;
Цитата:
всё равно старый остаеться
Фоновый цвет текста может, тоже нужно поменять?
ну думаю что нужно, так где менять, и перед этим вопрос с ошибкой, помоги пожалуйста.
Цитата:
вообщем вставляю я музыку в скрипт, выдаёт такую ошибку
В юникоде нет типа pChar, нужно заменять его на PAnsiChar и еще в некоторых местах нужно менять string на ansistring, в общем куча гемора этот модуль под юникод переделывать, проще на анси компилить
Hell_Dog2011
а еще до того, как пользоваться жойнером, неплохо сперва разобраться, как им пользоваться. тут небольшой обзор по правильному использованию.
Gnom3
спасибо под юникод значит гемора много, можешь места дать где менять?
спасибо под юникод значит гемора много, можешь места дать где менять?
Цитата:
можешь места дать где менять?
везде, где будет ошибка на неправильный тип.
Gnom3
спасибо теперь всё ок, так же про сплеш хотелось бы узнать.
Добавлено:
теперь вопрос другой, "я вас замучаю теперь, но зато потом на друхих сам буду делать."
вот с компонентами мне не понятно, как сделать так чтобы они из общего архива игры распаковывались, тоесть сжатые в общиее даты.
спасибо теперь всё ок, так же про сплеш хотелось бы узнать.
Добавлено:
теперь вопрос другой, "я вас замучаю теперь, но зато потом на друхих сам буду делать."
вот с компонентами мне не понятно, как сделать так чтобы они из общего архива игры распаковывались, тоесть сжатые в общиее даты.
Цитата:
так же про сплеш хотелось бы узнать.
что именно? если почему не работает в юникоде, то потому что тип string в анси на самом деле является ansistring а в юникоде - widestring, потому и не работает - длл ожидает анси строку, а юникод пихает ей путь в wide-строке.
Gnom3
ну знаете как то не понял что надо сдклать чтобы работало
ну знаете как то не понял что надо сдклать чтобы работало
Hell_Dog2011
А я не увидел у тебя в коде сплеш-заставки, чтоб указать где и что нужно сделать.
А я не увидел у тебя в коде сплеш-заставки, чтоб указать где и что нужно сделать.
[more]
Код: ; --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, (c) Bulat Ziganshin <Bulat.Ziganshin@gmail.com>. More info at http://issjoiner.codeplex.com/
; --- Source: PES2013.iss ------------------------------------------------------------
//===== [озу для распаковки] =====\\
#define NeedMem "512"
#define NeedSize "6158"
#define TNeedSize "6159"
;#define Components
;#define records
//===== [Дополнительные библиотеки (для ISDone)] =====\\
;#define PrecompInside
;#define SrepInside
#define facompress
;#define precomp "0.42"
;#define unrar
;#define XDelta
;#define PackZIP
//===== [название игры] =====\\
#define GameName "Pro Evolution Soccer 2013"
//===== [версия игры] =====\\
#define GameVersion "1.0"
//===== [имя экзешника игры] =====\\
#define ExeFile "pes2013.exe"
//===== [версия инсталла] =====\\
#define InstallVersion "1.0"
//===== [название группы] =====\\
#define Company "KONAMI"
//===== [ник репакера] =====\\
#define RePacker "Hell_Dog"
[Setup]
AppName={#GameName}
DefaultDirName={pf}\{#Company}\{#GameName}
DefaultGroupName={#Company}\{#GameName}
AppVerName={#GameName} v{#GameVersion} / RePack by {#RePacker}
VersionInfoDescription={#GameName} / RePack by {#RePacker}
VersionInfoTextVersion={#InstallVersion}
VersionInfoVersion={#InstallVersion}
VersionInfoCompany={#Company}
AppCopyright=© {#Company}
SetupIconFile=Icons\pes.ico
InfoBeforeFile=Info.rtf
ShowTasksTreeLines=Yes
DisableProgramGroupPage=True
BitmapResource=FonL:Files\FonL.bmp|FonL1:Files\FonL1.bmp|WizImg:Files\WizImg.bmp|FonR:Files\FonR.bmp|Cat:Files\Cat.bmp|Btn1:Files\Btn1.bmp|Btn2:Files\Btn2.bmp
[CustomMessages]
ru.Extracted=Распаковка архивов...
ru.Error=Ошибка распаковки!
ru.ElapsedTime=Прошло:
ru.RemainingTime=Осталось:
ru.ExtractedFile=Извлекается файл:
ru.Run=Запустить {#GameName}
ru.Uninstall=Удалить {#GameName}
ru.Text=Язык интерфейса:
ru.Voice=Язык озвучки:
ru.Russian=Русский.
ru.English=Английский.
ru.CreateDesktopIcon=Создать ярлык на Рабочем столе.
ru.FreeSpace=Свободно места на выбранном диске...
ru.TNeedSpace=Для распаковки требуется................
ru.Redist=Дополнительное ПО:
ru.DirectX=Обновить / Установить DirectX.
ru.VCRedist=Обновить / Установить VCRedist.
ru.StWelcome=Приветствие
ru.StCats=Каталоги
ru.StTasks=Задачи
ru.StInfo=Информация
ru.StReady=Подготовка
ru.StInstalling=Установка
ru.StFinished=Завершение
ru.TB=Тб
ru.GB=Гб
ru.MB=Мб
[Languages]
Name: ru; MessagesFile: Lang\Russian.isl
//===== [компоненты] =====\\:
[Types]
Name: full; Description: Полная установка; Flags: iscustom
[Components]
Name: Redist; Description: {cm:Redist}; Types: full; Flags: collapsed
Name: Redist\DirectX; Description: {cm:DirectX}; Types: full;
Name: CreateDesktopIcon; Description: {cm:CreateDesktopIcon}; Types: full; Flags: collapsed
[Run]
Filename: {src}\Redist\DXSETUP.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\DirectX; Check: CheckError;
//===== [иконки] =====\\:
[Icons]
Name: {group}\{cm:Run}; Filename: {app}\{#ExeFile}; Check: CheckError and NoIconsCheck;
Name: {group}\{cm:Uninstall}; Filename: {uninstallexe}; Check: CheckError and NoIconsCheck;
Name: {commondesktop}\{#GameName}; Filename: {app}\{#ExeFile}; Workingdir: {app}; Components: CreateDesktopIcon; Check: CheckError;
Name: "{commondesktop}\Настройки"; Filename: "{app}\settings.exe"; Workingdir: {app}; Components: CreateDesktopIcon; Check: CheckError;
[Registry]
Root: HKLM; SubKey: Software\KONAMI; Flags: uninsdeletekeyifempty
Root: HKLM; SubKey: Software\KONAMI\PES2013; ValueType: string; ValueName: version; ValueData: 1.00.0000; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: Software\KONAMI\PES2013; ValueType: string; ValueName: installdir; ValueData: D:\Games\Pro Evolution Soccer 2013\; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: Software\KONAMI\PES2013; ValueType: string; ValueName: code; ValueData: SHVY-3LE9-TMNH-7K5L-JN73; Flags: uninsdeletevalue uninsdeletekeyifempty
[UninstallDelete]
Type: FilesAndOrDirs; Name: {app}
[Code]
#include "Modules\Header.iss"
#include "Modules\ISDoneHeader.iss"
procedure InitializeWizard1();
begin
with WizardForm do begin
AutoScroll := False;
ClientHeight := ScaleY(400);
ClientWidth := ScaleX(800);
Font.Color:= clWhite;
OuterNotebook.SetBounds(ScaleX(0), ScaleY(0), ScaleX(579), ScaleY(400));
InnerNotebook.SetBounds(ScaleX(10), ScaleY(10), ScaleX(560), ScaleY(380));
Position:= poScreenCenter;
OnMouseMove:= @WizardLabelMove;
for n := 0 to OuterNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(0, 0, OuterNotebook.Pages[n].ClientWidth, OuterNotebook.Pages[n].ClientHeight);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL');
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(ScaleX(40), ScaleY(79), ScaleX(520), ScaleY(190));
Bitmap.LoadFromResourceName(HInstance, '_IS_WizImg');
end;
end;
for n := 0 to InnerNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := InnerNotebook.Pages[n];
SetBounds(-InnerNotebook.Left, -InnerNotebook.Top, InnerNotebook.Pages[n].ClientWidth + InnerNotebook.Left, InnerNotebook.Pages[n].ClientHeight + InnerNotebook.Top);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL1');
Name := 'Bgnd_' + InnerNotebook.Pages[n].Name;
OnMouseMove:= @WizardLabelMove;
end;
end;
InnerPage.Color:= $272525;
MainPanel.Color:= $585858;
MainPanel.SetBounds(ScaleX(85), ScaleY(25), ScaleX(470), ScaleY(40));
PageNameLabel.Font:= WizardForm.Font;
PageNameLabel.SetBounds(ScaleX(0), ScaleY(3), ScaleX(470), ScaleY(14));
PageDescriptionLabel.SetBounds(ScaleX(10), ScaleY(15), ScaleX(470), ScaleY(26));
with WelcomeLabel1 do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with WelcomeLabel2 do begin
SetBounds(ScaleX(50), ScaleY(285), ScaleX(500), ScaleY(75));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
InfoBeforeClickLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(20));
InfoBeforeMemo.SetBounds(ScaleX(40), ScaleY(110), ScaleX(497), ScaleY(230));
InfoBeforeMemo.Color:= $272525;
InfoBeforeMemo.TabStop:= False;
SelectDirBrowseLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(40));
SelectDirLabel.SetBounds(ScaleX(50), ScaleY(129), ScaleX(250), ScaleY(20));
DirEdit.SetBounds(ScaleX(50), ScaleY(155), ScaleX(370), ScaleY(21));
DirEdit.Color:= $272525;
DirEdit.TabStop:=False;
DirEdit.OnChange:= @GetFreeSpaceCaption;
DirBrowseButton.SetBounds(ScaleX(430), ScaleY(155), ScaleX(80), ScaleY(23));
DirBrowseButton.Font.Color:= clBlack;
FreeSpaceLbl:= Tlabel.Create(WizardForm);
FreeSpaceLbl.Parent:= SelectDirPage;
FreeSpaceLbl.SetBounds(ScaleX(50), ScaleY(180), ScaleX(450), ScaleY(20));
DiskSpaceLabel.SetBounds(ScaleX(50), ScaleY(200), ScaleX(450), ScaleY(20));
TNeedSizeLbl:= Tlabel.Create(WizardForm);
TNeedSizeLbl.Parent:= SelectDirPage;
TNeedSizeLbl.SetBounds(ScaleX(50), ScaleY(220), ScaleX(450), ScaleY(20));
SelectStartMenuFolderLabel.Parent:= SelectDirPage;
SelectStartMenuFolderLabel.SetBounds(ScaleX(50), ScaleY(260), ScaleX(320), ScaleY(20));
GroupEdit.Parent:= SelectDirPage;
GroupEdit.SetBounds(ScaleX(50), ScaleY(285), ScaleX(370), ScaleY(21));
GroupEdit.Color:= $272525;
GroupBrowseButton.Parent:= SelectDirPage;
GroupBrowseButton.SetBounds(ScaleX(430), ScaleY(285), ScaleX(80), ScaleY(23));
GroupBrowseButton.Font.Color:= clBlack;
NoIconsCb:= TNewCheckBox.Create(WizardForm);
NoIconsCb.Parent:= WizardForm.SelectDirPage;
NoIconsCb.SetBounds(ScaleX(50), ScaleY(310), ScaleX(20), ScaleY(20));
NoIconsCb.OnClick:= @CheckNoIcons;
SelectComponentsLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ComponentsList.SetBounds(ScaleX(40), ScaleY(130), ScaleX(497), ScaleY(170));
ComponentsList.Color:= $272525;
ComponentsList.TreeViewStyle := True;
ComponentsDiskSpaceLabel.SetBounds(ScaleX(40), ScaleY(310), ScaleX(497), ScaleY(20));
ReadyLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ReadyMemo.SetBounds(ScaleX(40), ScaleY(140), ScaleX(497), ScaleY(210));
ReadyMemo.Color:= $272525;
ReadyMemo.ScrollBars:= ssVertical;
StatusLabel.SetBounds(ScaleX(50), ScaleY(100), ScaleX(417), ScaleY(20));
FilenameLabel.SetBounds(ScaleX(50), ScaleY(125), ScaleX(417), ScaleY(20));
ProgressGauge.SetBounds(ScaleX(50), ScaleY(150), ScaleX(480), ScaleY(21));
LabelPct:= TLabel.Create(WizardForm);
with LabelPct do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(230), ScaleY(200), ScaleX(460), ScaleY(41));
Font.Size:= 20;
Alignment:= taCenter;
Font.Name:= 'Verdana';
end;
LabelTime:= TLabel.Create(WizardForm);
with LabelTime do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(30), ScaleY(180), ScaleX(460), ScaleY(21));
AutoSize:= False;
Alignment:= taCenter;
end;
Bevel.Parent:= SelectDirPage;
Bevel.SetBounds(ScaleX(40), ScaleY(135), ScaleX(497), ScaleY(110));
Bevel.Shape:= bsFrame;
Bevel1.Parent:= SelectDirPage;
Bevel1.SetBounds(ScaleX(40), ScaleY(265), ScaleX(497), ScaleY(70));
Bevel1.Shape:= bsFrame;
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm.SelectDirPage;
SetBounds(ScaleX(70), ScaleY(313), ScaleX(200), ScaleY(20));
Caption:= NoIconsCheck.Caption;
Cursor:= crHand;
OnClick:= @NoIconsLblClick;
end;
with FinishedHeadingLabel do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with FinishedLabel do begin
SetBounds(ScaleX(50), ScaleY(283), ScaleX(500), ScaleY(83));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := WizardForm;
Left := ScaleX(579);
Top := ScaleY(0);
Width := ScaleX(221);
Height := ScaleY(400);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonR');
end;
with WizardSmallBitmapImage do begin
Parent := WizardForm;
Left := ScaleX(592);
Width := ScaleX(199);
Height := ScaleY(39);
Bitmap.LoadFromResourceName(HInstance, '_IS_Cat');
end;
NextButton.SetBounds(ScaleX(697), ScaleY(335), ScaleX(80), ScaleY(30));
BackButton.SetBounds(ScaleX(605), ScaleY(335), ScaleX(80), ScaleY(30));
CancelButton.SetBounds(0,0,0,0);
WizardLabel:= TLabel.Create(WizardForm)
WizardLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(WizardForm.Width), ScaleY(WizardForm.Height))
WizardLabel.Transparent:= True;
WizardLabel.AutoSize:=false;
WizardLabel.OnMouseMove:=@WizardLabelMove
WizardLabel.Parent:= WizardForm;
LoadButtonImage('_IS_Btn1', BackButton);
LoadButtonImage('_IS_Btn1', NextButton);
LoadButtonImage('_IS_Btn2', DirBrowseButton);
LoadButtonImage('_IS_Btn2', GroupBrowseButton);
end;
for n:=0 to 6 do begin
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm;
Transparent:= True;
SetBounds(ScaleX(615), 0, ScaleX(110), ScaleY(20));
AutoSize:= True;
Font.Size:= 12;
Font.Style:= [fsBold];
Font.Color:= clBlack;
case n of
0: begin
Top:= ScaleY(20);
Caption:= ExpandConstant('{cm:StWelcome}');
end;
1: begin
Top:= ScaleY(62);
Caption:= ExpandConstant('{cm:StInfo}');
end;
2: begin
Top:= ScaleY(105);
Caption:= ExpandConstant('{cm:StCats}');
end;
3: begin
Top:= ScaleY(147);
Caption:= ExpandConstant('{cm:StTasks}');
end;
4: begin
Top:= ScaleY(192);
Caption:= ExpandConstant('{cm:StReady}');
end;
5: begin
Top:= ScaleY(235);
Caption:= ExpandConstant('{cm:StInstalling}');
end;
6: begin
Top:= ScaleY(277);
Caption:= ExpandConstant('{cm:StFinished}');
end;
end;
end;
end;
SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000);
end;
Procedure CurPageChanged1(CurPageID: Integer);
Begin
case CurPageID of
wpWelcome: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(9);
wpInfoBefore: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(51);
wpSelectDir:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(94);
GetFreeSpaceCaption(nil);
end;
wpSelectComponents: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(138);
wpReady: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(182);
wpInstalling:
begin
WizardForm.CancelButton.SetBounds(ScaleX(697),ScaleY(335),ScaleX(80),ScaleY(30));
LoadButtonImage('_IS_BTN1', WizardForm.CancelButton);
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(226);
end;
wpFinished:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(269);
if ISDoneError then begin
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted);
end;
end;
end;
UpdateButtons();
end;
procedure CurStepChanged1(CurStep: TSetupStep);
var
Comps1,Comps2,Comps3:cardinal;
PCFVer: Double;
#ifdef Components
TmpValue: Cardinal;
#endif
// переменные для примеров
// FindHandle1,ColFiles1,CurIndex1,tmp:integer;
// ExecError:boolean;
// InFilePath,OutFilePath,OutFileName:PAnsiChar;
begin
if CurStep = ssInstall then begin
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
ISDoneCancel:=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
PCFVer:={#precomp};
#if "0.38" == precomp
ExtractTemporaryFile('precomp038.exe');
#else
#if "0.4" == precomp
ExtractTemporaryFile('precomp040.exe');
#else
#if "0.41" == precomp
ExtractTemporaryFile('precomp041.exe');
#else
#if "0.42" == precomp
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#else
PCFVer:=0;
#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
ISDoneError:=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}\Data.dog'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data1.dog'), ExpandConstant('{app}\img'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data2.dog'), ExpandConstant('{app}\img'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data3.dog'), ExpandConstant('{app}\img'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data4.dog'), ExpandConstant('{app}\img'), '', 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, 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;
*)
ISDoneError:=false;
until true;
ISDoneStop;
end;
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
[Setup]
; --- Source: высвечиваеться надпись.iss ------------------------------------------------------------
[Code]
[Files]
Source: "include\isgsg.dll"; DestDir: {tmp}; Flags: dontcopy solidbreak deleteafterinstall
Source: "Files\pes.png"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "Files\splsh.png"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
[Code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure InitializeWizard1();
begin
ExtractTemporaryFile('pes.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\pes.png',1000,3000,1000,0,255,False,$FFFFFF,10);
ExtractTemporaryFile('splsh.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splsh.png',1000,3000,1000,0,255,False,$FFFFFF,10);
end;
[Setup]
; --- Dispatching code ------------------------------------------------------------
[Code]
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CurStepChanged1(CurStep);
end;
Код: ; --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, (c) Bulat Ziganshin <Bulat.Ziganshin@gmail.com>. More info at http://issjoiner.codeplex.com/
; --- Source: PES2013.iss ------------------------------------------------------------
//===== [озу для распаковки] =====\\
#define NeedMem "512"
#define NeedSize "6158"
#define TNeedSize "6159"
;#define Components
;#define records
//===== [Дополнительные библиотеки (для ISDone)] =====\\
;#define PrecompInside
;#define SrepInside
#define facompress
;#define precomp "0.42"
;#define unrar
;#define XDelta
;#define PackZIP
//===== [название игры] =====\\
#define GameName "Pro Evolution Soccer 2013"
//===== [версия игры] =====\\
#define GameVersion "1.0"
//===== [имя экзешника игры] =====\\
#define ExeFile "pes2013.exe"
//===== [версия инсталла] =====\\
#define InstallVersion "1.0"
//===== [название группы] =====\\
#define Company "KONAMI"
//===== [ник репакера] =====\\
#define RePacker "Hell_Dog"
[Setup]
AppName={#GameName}
DefaultDirName={pf}\{#Company}\{#GameName}
DefaultGroupName={#Company}\{#GameName}
AppVerName={#GameName} v{#GameVersion} / RePack by {#RePacker}
VersionInfoDescription={#GameName} / RePack by {#RePacker}
VersionInfoTextVersion={#InstallVersion}
VersionInfoVersion={#InstallVersion}
VersionInfoCompany={#Company}
AppCopyright=© {#Company}
SetupIconFile=Icons\pes.ico
InfoBeforeFile=Info.rtf
ShowTasksTreeLines=Yes
DisableProgramGroupPage=True
BitmapResource=FonL:Files\FonL.bmp|FonL1:Files\FonL1.bmp|WizImg:Files\WizImg.bmp|FonR:Files\FonR.bmp|Cat:Files\Cat.bmp|Btn1:Files\Btn1.bmp|Btn2:Files\Btn2.bmp
[CustomMessages]
ru.Extracted=Распаковка архивов...
ru.Error=Ошибка распаковки!
ru.ElapsedTime=Прошло:
ru.RemainingTime=Осталось:
ru.ExtractedFile=Извлекается файл:
ru.Run=Запустить {#GameName}
ru.Uninstall=Удалить {#GameName}
ru.Text=Язык интерфейса:
ru.Voice=Язык озвучки:
ru.Russian=Русский.
ru.English=Английский.
ru.CreateDesktopIcon=Создать ярлык на Рабочем столе.
ru.FreeSpace=Свободно места на выбранном диске...
ru.TNeedSpace=Для распаковки требуется................
ru.Redist=Дополнительное ПО:
ru.DirectX=Обновить / Установить DirectX.
ru.VCRedist=Обновить / Установить VCRedist.
ru.StWelcome=Приветствие
ru.StCats=Каталоги
ru.StTasks=Задачи
ru.StInfo=Информация
ru.StReady=Подготовка
ru.StInstalling=Установка
ru.StFinished=Завершение
ru.TB=Тб
ru.GB=Гб
ru.MB=Мб
[Languages]
Name: ru; MessagesFile: Lang\Russian.isl
//===== [компоненты] =====\\:
[Types]
Name: full; Description: Полная установка; Flags: iscustom
[Components]
Name: Redist; Description: {cm:Redist}; Types: full; Flags: collapsed
Name: Redist\DirectX; Description: {cm:DirectX}; Types: full;
Name: CreateDesktopIcon; Description: {cm:CreateDesktopIcon}; Types: full; Flags: collapsed
[Run]
Filename: {src}\Redist\DXSETUP.exe; Parameters: /q; Flags: skipifdoesntexist; Components: Redist\DirectX; Check: CheckError;
//===== [иконки] =====\\:
[Icons]
Name: {group}\{cm:Run}; Filename: {app}\{#ExeFile}; Check: CheckError and NoIconsCheck;
Name: {group}\{cm:Uninstall}; Filename: {uninstallexe}; Check: CheckError and NoIconsCheck;
Name: {commondesktop}\{#GameName}; Filename: {app}\{#ExeFile}; Workingdir: {app}; Components: CreateDesktopIcon; Check: CheckError;
Name: "{commondesktop}\Настройки"; Filename: "{app}\settings.exe"; Workingdir: {app}; Components: CreateDesktopIcon; Check: CheckError;
[Registry]
Root: HKLM; SubKey: Software\KONAMI; Flags: uninsdeletekeyifempty
Root: HKLM; SubKey: Software\KONAMI\PES2013; ValueType: string; ValueName: version; ValueData: 1.00.0000; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: Software\KONAMI\PES2013; ValueType: string; ValueName: installdir; ValueData: D:\Games\Pro Evolution Soccer 2013\; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: Software\KONAMI\PES2013; ValueType: string; ValueName: code; ValueData: SHVY-3LE9-TMNH-7K5L-JN73; Flags: uninsdeletevalue uninsdeletekeyifempty
[UninstallDelete]
Type: FilesAndOrDirs; Name: {app}
[Code]
#include "Modules\Header.iss"
#include "Modules\ISDoneHeader.iss"
procedure InitializeWizard1();
begin
with WizardForm do begin
AutoScroll := False;
ClientHeight := ScaleY(400);
ClientWidth := ScaleX(800);
Font.Color:= clWhite;
OuterNotebook.SetBounds(ScaleX(0), ScaleY(0), ScaleX(579), ScaleY(400));
InnerNotebook.SetBounds(ScaleX(10), ScaleY(10), ScaleX(560), ScaleY(380));
Position:= poScreenCenter;
OnMouseMove:= @WizardLabelMove;
for n := 0 to OuterNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(0, 0, OuterNotebook.Pages[n].ClientWidth, OuterNotebook.Pages[n].ClientHeight);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL');
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := OuterNotebook.Pages[n];
SetBounds(ScaleX(40), ScaleY(79), ScaleX(520), ScaleY(190));
Bitmap.LoadFromResourceName(HInstance, '_IS_WizImg');
end;
end;
for n := 0 to InnerNotebook.PageCount-1 do begin
with TBitmapImage.Create(WizardForm) do begin
Parent := InnerNotebook.Pages[n];
SetBounds(-InnerNotebook.Left, -InnerNotebook.Top, InnerNotebook.Pages[n].ClientWidth + InnerNotebook.Left, InnerNotebook.Pages[n].ClientHeight + InnerNotebook.Top);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonL1');
Name := 'Bgnd_' + InnerNotebook.Pages[n].Name;
OnMouseMove:= @WizardLabelMove;
end;
end;
InnerPage.Color:= $272525;
MainPanel.Color:= $585858;
MainPanel.SetBounds(ScaleX(85), ScaleY(25), ScaleX(470), ScaleY(40));
PageNameLabel.Font:= WizardForm.Font;
PageNameLabel.SetBounds(ScaleX(0), ScaleY(3), ScaleX(470), ScaleY(14));
PageDescriptionLabel.SetBounds(ScaleX(10), ScaleY(15), ScaleX(470), ScaleY(26));
with WelcomeLabel1 do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with WelcomeLabel2 do begin
SetBounds(ScaleX(50), ScaleY(285), ScaleX(500), ScaleY(75));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
InfoBeforeClickLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(20));
InfoBeforeMemo.SetBounds(ScaleX(40), ScaleY(110), ScaleX(497), ScaleY(230));
InfoBeforeMemo.Color:= $272525;
InfoBeforeMemo.TabStop:= False;
SelectDirBrowseLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(500), ScaleY(40));
SelectDirLabel.SetBounds(ScaleX(50), ScaleY(129), ScaleX(250), ScaleY(20));
DirEdit.SetBounds(ScaleX(50), ScaleY(155), ScaleX(370), ScaleY(21));
DirEdit.Color:= $272525;
DirEdit.TabStop:=False;
DirEdit.OnChange:= @GetFreeSpaceCaption;
DirBrowseButton.SetBounds(ScaleX(430), ScaleY(155), ScaleX(80), ScaleY(23));
DirBrowseButton.Font.Color:= clBlack;
FreeSpaceLbl:= Tlabel.Create(WizardForm);
FreeSpaceLbl.Parent:= SelectDirPage;
FreeSpaceLbl.SetBounds(ScaleX(50), ScaleY(180), ScaleX(450), ScaleY(20));
DiskSpaceLabel.SetBounds(ScaleX(50), ScaleY(200), ScaleX(450), ScaleY(20));
TNeedSizeLbl:= Tlabel.Create(WizardForm);
TNeedSizeLbl.Parent:= SelectDirPage;
TNeedSizeLbl.SetBounds(ScaleX(50), ScaleY(220), ScaleX(450), ScaleY(20));
SelectStartMenuFolderLabel.Parent:= SelectDirPage;
SelectStartMenuFolderLabel.SetBounds(ScaleX(50), ScaleY(260), ScaleX(320), ScaleY(20));
GroupEdit.Parent:= SelectDirPage;
GroupEdit.SetBounds(ScaleX(50), ScaleY(285), ScaleX(370), ScaleY(21));
GroupEdit.Color:= $272525;
GroupBrowseButton.Parent:= SelectDirPage;
GroupBrowseButton.SetBounds(ScaleX(430), ScaleY(285), ScaleX(80), ScaleY(23));
GroupBrowseButton.Font.Color:= clBlack;
NoIconsCb:= TNewCheckBox.Create(WizardForm);
NoIconsCb.Parent:= WizardForm.SelectDirPage;
NoIconsCb.SetBounds(ScaleX(50), ScaleY(310), ScaleX(20), ScaleY(20));
NoIconsCb.OnClick:= @CheckNoIcons;
SelectComponentsLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ComponentsList.SetBounds(ScaleX(40), ScaleY(130), ScaleX(497), ScaleY(170));
ComponentsList.Color:= $272525;
ComponentsList.TreeViewStyle := True;
ComponentsDiskSpaceLabel.SetBounds(ScaleX(40), ScaleY(310), ScaleX(497), ScaleY(20));
ReadyLabel.SetBounds(ScaleX(40), ScaleY(80), ScaleX(470), ScaleY(50));
ReadyMemo.SetBounds(ScaleX(40), ScaleY(140), ScaleX(497), ScaleY(210));
ReadyMemo.Color:= $272525;
ReadyMemo.ScrollBars:= ssVertical;
StatusLabel.SetBounds(ScaleX(50), ScaleY(100), ScaleX(417), ScaleY(20));
FilenameLabel.SetBounds(ScaleX(50), ScaleY(125), ScaleX(417), ScaleY(20));
ProgressGauge.SetBounds(ScaleX(50), ScaleY(150), ScaleX(480), ScaleY(21));
LabelPct:= TLabel.Create(WizardForm);
with LabelPct do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(230), ScaleY(200), ScaleX(460), ScaleY(41));
Font.Size:= 20;
Alignment:= taCenter;
Font.Name:= 'Verdana';
end;
LabelTime:= TLabel.Create(WizardForm);
with LabelTime do begin
Parent:= WizardForm.InstallingPage;
Transparent:= True;
SetBounds(ScaleX(30), ScaleY(180), ScaleX(460), ScaleY(21));
AutoSize:= False;
Alignment:= taCenter;
end;
Bevel.Parent:= SelectDirPage;
Bevel.SetBounds(ScaleX(40), ScaleY(135), ScaleX(497), ScaleY(110));
Bevel.Shape:= bsFrame;
Bevel1.Parent:= SelectDirPage;
Bevel1.SetBounds(ScaleX(40), ScaleY(265), ScaleX(497), ScaleY(70));
Bevel1.Shape:= bsFrame;
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm.SelectDirPage;
SetBounds(ScaleX(70), ScaleY(313), ScaleX(200), ScaleY(20));
Caption:= NoIconsCheck.Caption;
Cursor:= crHand;
OnClick:= @NoIconsLblClick;
end;
with FinishedHeadingLabel do begin
SetBounds(ScaleX(85), ScaleY(35), ScaleX(470), ScaleY(30));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with FinishedLabel do begin
SetBounds(ScaleX(50), ScaleY(283), ScaleX(500), ScaleY(83));
Font.Size:= 9;
Font.Color:= clWhite;
Color:= $585858;
end;
with TBitmapImage.Create(WizardForm) do begin
Parent := WizardForm;
Left := ScaleX(579);
Top := ScaleY(0);
Width := ScaleX(221);
Height := ScaleY(400);
Bitmap.LoadFromResourceName(HInstance, '_IS_FonR');
end;
with WizardSmallBitmapImage do begin
Parent := WizardForm;
Left := ScaleX(592);
Width := ScaleX(199);
Height := ScaleY(39);
Bitmap.LoadFromResourceName(HInstance, '_IS_Cat');
end;
NextButton.SetBounds(ScaleX(697), ScaleY(335), ScaleX(80), ScaleY(30));
BackButton.SetBounds(ScaleX(605), ScaleY(335), ScaleX(80), ScaleY(30));
CancelButton.SetBounds(0,0,0,0);
WizardLabel:= TLabel.Create(WizardForm)
WizardLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(WizardForm.Width), ScaleY(WizardForm.Height))
WizardLabel.Transparent:= True;
WizardLabel.AutoSize:=false;
WizardLabel.OnMouseMove:=@WizardLabelMove
WizardLabel.Parent:= WizardForm;
LoadButtonImage('_IS_Btn1', BackButton);
LoadButtonImage('_IS_Btn1', NextButton);
LoadButtonImage('_IS_Btn2', DirBrowseButton);
LoadButtonImage('_IS_Btn2', GroupBrowseButton);
end;
for n:=0 to 6 do begin
with TLabel.Create(WizardForm) do begin
Parent:= WizardForm;
Transparent:= True;
SetBounds(ScaleX(615), 0, ScaleX(110), ScaleY(20));
AutoSize:= True;
Font.Size:= 12;
Font.Style:= [fsBold];
Font.Color:= clBlack;
case n of
0: begin
Top:= ScaleY(20);
Caption:= ExpandConstant('{cm:StWelcome}');
end;
1: begin
Top:= ScaleY(62);
Caption:= ExpandConstant('{cm:StInfo}');
end;
2: begin
Top:= ScaleY(105);
Caption:= ExpandConstant('{cm:StCats}');
end;
3: begin
Top:= ScaleY(147);
Caption:= ExpandConstant('{cm:StTasks}');
end;
4: begin
Top:= ScaleY(192);
Caption:= ExpandConstant('{cm:StReady}');
end;
5: begin
Top:= ScaleY(235);
Caption:= ExpandConstant('{cm:StInstalling}');
end;
6: begin
Top:= ScaleY(277);
Caption:= ExpandConstant('{cm:StFinished}');
end;
end;
end;
end;
SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000);
end;
Procedure CurPageChanged1(CurPageID: Integer);
Begin
case CurPageID of
wpWelcome: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(9);
wpInfoBefore: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(51);
wpSelectDir:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(94);
GetFreeSpaceCaption(nil);
end;
wpSelectComponents: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(138);
wpReady: WizardForm.WizardSmallBitmapImage.Top:= ScaleY(182);
wpInstalling:
begin
WizardForm.CancelButton.SetBounds(ScaleX(697),ScaleY(335),ScaleX(80),ScaleY(30));
LoadButtonImage('_IS_BTN1', WizardForm.CancelButton);
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(226);
end;
wpFinished:
begin
WizardForm.WizardSmallBitmapImage.Top:= ScaleY(269);
if ISDoneError then begin
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted);
end;
end;
end;
UpdateButtons();
end;
procedure CurStepChanged1(CurStep: TSetupStep);
var
Comps1,Comps2,Comps3:cardinal;
PCFVer: Double;
#ifdef Components
TmpValue: Cardinal;
#endif
// переменные для примеров
// FindHandle1,ColFiles1,CurIndex1,tmp:integer;
// ExecError:boolean;
// InFilePath,OutFilePath,OutFileName:PAnsiChar;
begin
if CurStep = ssInstall then begin
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
ISDoneCancel:=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
PCFVer:={#precomp};
#if "0.38" == precomp
ExtractTemporaryFile('precomp038.exe');
#else
#if "0.4" == precomp
ExtractTemporaryFile('precomp040.exe');
#else
#if "0.41" == precomp
ExtractTemporaryFile('precomp041.exe');
#else
#if "0.42" == precomp
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#else
PCFVer:=0;
#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
ISDoneError:=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}\Data.dog'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data1.dog'), ExpandConstant('{app}\img'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data2.dog'), ExpandConstant('{app}\img'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data3.dog'), ExpandConstant('{app}\img'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data4.dog'), ExpandConstant('{app}\img'), '', 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, 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;
*)
ISDoneError:=false;
until true;
ISDoneStop;
end;
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
[Setup]
; --- Source: высвечиваеться надпись.iss ------------------------------------------------------------
[Code]
[Files]
Source: "include\isgsg.dll"; DestDir: {tmp}; Flags: dontcopy solidbreak deleteafterinstall
Source: "Files\pes.png"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "Files\splsh.png"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
[Code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure InitializeWizard1();
begin
ExtractTemporaryFile('pes.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\pes.png',1000,3000,1000,0,255,False,$FFFFFF,10);
ExtractTemporaryFile('splsh.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splsh.png',1000,3000,1000,0,255,False,$FFFFFF,10);
end;
[Setup]
; --- Dispatching code ------------------------------------------------------------
[Code]
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CurStepChanged1(CurStep);
end;
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
Предыдущая тема: поиск
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.