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

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

Автор: tahirg
Дата сообщения: 27.09.2012 07:27
решено
Автор: Hell_Dog2011
Дата сообщения: 27.09.2012 22:08
log1stable
да где именно менять цвет всех окон
Автор: MOD_TEC
Дата сообщения: 28.09.2012 10:41
Как текструировать прогрессбар на деинсталляторе через ботву если можно пример... Заранее спасибо за помощь...
Автор: Jacsonn
Дата сообщения: 29.09.2012 01:11
А можно ли отрезать от страницы, к примеру SelectDirPage, маленький кусок размером, к примеру 190*30? Просто мне на этом месте InnerPage нужна, SelectDirPage загораживает!!! Спасибо! Этот вопрос отпадает!
Автор: BUU
Дата сообщения: 29.09.2012 13:42
Всем привет снова, вот проблема есть в старой реализации скрипта с оформлением темным, не могу убрать из скрипта freearc, компилируется, но когда нажимаешь установить в инстале, то зависает инсталл с прогресс баром пустым, и грузит процесс setup.tmp - 25 ЦП
Автор: Jacsonn
Дата сообщения: 01.10.2012 01:17
И последний (я надеюсь) вопрос! У меня есть много файлов которые извлекаются в папку {tmp}, естественно они имеют размер и когда на странице выбора компонентов сняты все галочки с компонетов (устанавливать нечего), то ComponentsDiskSpaceLabel выдаёт размер временных файлов, так как мне обнулить это, когда невыбран ни один компонент?
Автор: Gnom3
Дата сообщения: 01.10.2012 07:29
Jacsonn
Нужно не распаковывать эти файлы из секции [Files]. Тоесть, убрать с этих файлов Destdir : {tmp};, оставив Flags : dontcopy; Это нормальное явление, даже зубры программирования допускают эту ошибку. Единственное - нужно не забыть распковать эти файлы в коде, с помощью ExtractTemporaryFile, перед использованием. И неплохо удалять их после использования самостоятельно, с помощью DeleteFile поштучно, либо с помощью DelTree(ExpandConstant('{tmp}', True, True, True); всю временную папку инсталятора целиком на выходе, поскольку я начал замечать за инсталлом на инно косяк с неудалением временной папки время от времени.
Автор: Jacsonn
Дата сообщения: 01.10.2012 10:35
Теперь всё, всем спасибо
Автор: Hell_Dog2011
Дата сообщения: 01.10.2012 11:37
пожалуйста помогите со скриптом 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
Вот на этой строчке вылазиет ошибка плизз помогите.
Автор: Gnom3
Дата сообщения: 01.10.2012 14:35
Hell_Dog2011
расширенную версию ставь. или готовую сборку из моей подписи.
Автор: Hell_Dog2011
Дата сообщения: 01.10.2012 16:17
спасибо

Добавлено:
Gnom3
всё равно выдаёт ошибку не мог бы ты сам посмотреть что не так там?
Автор: Gnom3
Дата сообщения: 01.10.2012 16:33
Hell_Dog2011

Цитата:
всё равно выдаёт ошибку

скрин ошибки покажи. болванку этого скрипта писал именно я, собственно - там реализована именно моя система вставки изображений на все страницы инсталла, и если с компилятором не накосячил, то скаченный с оригинального источника без вмешательства кривого Васи, это скрипт работает без ошибок. Единственный мой косяк - забыл вставить проверку компилятора, на котором этот скрипт можно компилить. Скрин ошибки и компилятора с тебя.
Автор: BUU
Дата сообщения: 01.10.2012 16:53
Gnom3
а что скажешь про меня?, то никак не могу убрать freearc из скрипта, хочу только дизайн тёмный оставить
Автор: Hell_Dog2011
Дата сообщения: 01.10.2012 17:04
Gnom3
всё уже разобрался, единственное хочу узнать чтобы поменять полностью дизайн, в какой секции это менять?
Автор: Gnom3
Дата сообщения: 01.10.2012 17:12
Hell_Dog2011 смотря что ты имеешь в виду под дизайном. если картинку - то в фотошопе, если
что-то еще - то проще написать заново - мой способ вставки картинок предполагает минимальный код, но и изменить способ довольно проблематично.
BUU
Скрипт с файлами в личку.
Автор: Hell_Dog2011
Дата сообщения: 01.10.2012 17:20
Gnom3
понятно, ну я совсем бестолоч в этом деле, так что..... а можно ли в твой скрипт вставить музыку?
и в догонку, почему не высвечиваеться надпись чего не хватает?
модули все вставил, а всё равно не работает.
Автор: SotM
Дата сообщения: 01.10.2012 18:20
--
Автор: Hell_Dog2011
Дата сообщения: 01.10.2012 20:16
ну поможете мне?
Автор: Gnom3
Дата сообщения: 02.10.2012 16:27
Inno Setup Compiler (build 121002)
Inno ISCmplr Setup (build 121002)

InnoUltra обновлена.


Цитата:
а можно ли в твой скрипт вставить музыку?

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

Цитата:
и в догонку, почему не высвечиваеться надпись чего не хватает?

какая надпись?
Автор: Hell_Dog2011
Дата сообщения: 02.10.2012 19:48
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;
Автор: Gnom3
Дата сообщения: 02.10.2012 20:20

Цитата:
всё равно старый остаеться

Фоновый цвет текста может, тоже нужно поменять?
Автор: Hell_Dog2011
Дата сообщения: 02.10.2012 20:22
ну думаю что нужно, так где менять, и перед этим вопрос с ошибкой, помоги пожалуйста.
Автор: Gnom3
Дата сообщения: 02.10.2012 20:23

Цитата:
вообщем вставляю я музыку в скрипт, выдаёт такую ошибку

В юникоде нет типа pChar, нужно заменять его на PAnsiChar и еще в некоторых местах нужно менять string на ansistring, в общем куча гемора этот модуль под юникод переделывать, проще на анси компилить
Hell_Dog2011
а еще до того, как пользоваться жойнером, неплохо сперва разобраться, как им пользоваться. тут небольшой обзор по правильному использованию.
Автор: Hell_Dog2011
Дата сообщения: 02.10.2012 20:24
Gnom3
спасибо под юникод значит гемора много, можешь места дать где менять?
Автор: Gnom3
Дата сообщения: 02.10.2012 20:28

Цитата:
можешь места дать где менять?

везде, где будет ошибка на неправильный тип.
Автор: Hell_Dog2011
Дата сообщения: 02.10.2012 20:32
Gnom3
спасибо теперь всё ок, так же про сплеш хотелось бы узнать.

Добавлено:
теперь вопрос другой, "я вас замучаю теперь, но зато потом на друхих сам буду делать."
вот с компонентами мне не понятно, как сделать так чтобы они из общего архива игры распаковывались, тоесть сжатые в общиее даты.
Автор: Gnom3
Дата сообщения: 02.10.2012 20:38

Цитата:
так же про сплеш хотелось бы узнать.

что именно? если почему не работает в юникоде, то потому что тип string в анси на самом деле является ansistring а в юникоде - widestring, потому и не работает - длл ожидает анси строку, а юникод пихает ей путь в wide-строке.
Автор: Hell_Dog2011
Дата сообщения: 02.10.2012 20:41
Gnom3
ну знаете как то не понял что надо сдклать чтобы работало
Автор: Gnom3
Дата сообщения: 02.10.2012 20:46
Hell_Dog2011
А я не увидел у тебя в коде сплеш-заставки, чтоб указать где и что нужно сделать.
Автор: Hell_Dog2011
Дата сообщения: 02.10.2012 20:55
[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;


Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


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