Jump to content
Korean Random
EvilAlex

Создание инсталляторов для модпаков на базе Inno Setup

Recommended Posts

Спасибо вам за помощь но увы не получается... как ни как первый день это все изучаю и знаний не хватает. к тому же делаю не с нуля а на примере другого пака. раньше для меня это было что то нереальное. ни когда не пробовал проги писать. да и не шарю. но все же СПАСИБО за помощь.

темку почитай (станиц 60) 

Share this post


Link to post

Short link
Share on other sites

Dark_Knight_MiX, тему почитай (страниц 60) ©

я то читал всю 

Share this post


Link to post

Short link
Share on other sites

Все добрый день!

Как добавить картинку к компонентам?

только картинка 

[Setup]
AppName=Моя программа
AppVersion=1.5
DefaultDirName={pf}\Моя программа

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

[CustomMessages]
RU.CompName1=Компонент 1
RU.CompName2=Компонент 2
RU.ComponentsInfo=Наведите курсор мыши на компонент, чтобы прочитать его описание.
RU.ComponentsImgInfo=Наведите курсор мыши на компонент, чтобы посмотреть его превью.
RU.CompDesc1=Описание первого компонента
RU.CompDesc2=Описание второго компонента

[Files]
Source: "compiler:WizModernImage.bmp"; DestName: "CompDescImg1.bmp"; Flags: dontcopy
Source: "compiler:WizModernImage-IS.bmp"; DestName: "CompDescImg2.bmp"; Flags: dontcopy
Source: "compiler:WizModernImage.bmp"; DestName: "MainPic.bmp"; Flags: dontcopy

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: comp1; Description: "{cm:CompName1}"; Types: full
Name: comp2; Description: "{cm:CompName2}"; Types: full
Name: comp3; Description: "{cm:CompName1}"; Types: full
Name: comp4; Description: "{cm:CompName2}"; Types: full
Name: comp5; Description: "{cm:CompName1}"; Types: full
Name: comp6; Description: "{cm:CompName2}"; Types: full
Name: comp7; Description: "{cm:CompName1}"; Types: full
Name: comp8; Description: "{cm:CompName2}"; Types: full

[Code]
type
  TComponentDesc = record
    ImageName: String;
    Index: Integer;
  end;

var
  CompDescs: array of TComponentDesc;
  CompDescImgPanel: TPanel;
  CompIndex, LastIndex: Integer;
  CompDescImg: TBitmapImage;

procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var
  i: Integer;
begin
  if Index = LastIndex then Exit;
  CompIndex := -1;
  for i := 0 to GetArrayLength(CompDescs) -1 do
  begin
    if (CompDescs[i].Index = Index) then
    begin
      CompIndex := i;
      Break;
    end;
  end;
  if (CompIndex >= 0) and (Area = iaItem) then
  begin
    if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then
      ExtractTemporaryFile(CompDescs[CompIndex].ImageName);
    CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);
   CompDescImg.Show;
end else
begin
CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));
end;
LastIndex := Index;
end;

procedure CompListMouseLeave(Sender: TObject);
begin
  LastIndex := -1;
 CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));
end;

procedure AddCompDescription(AIndex: Integer; AImageName: String);
var
  i: Integer;
begin
  i := GetArrayLength(CompDescs);
  SetArrayLength(CompDescs, i + 1);
  CompDescs[i].ImageName := AImageName;
  CompDescs[i].Index := AIndex - 1
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('MainPic.bmp');
  WizardForm.SelectComponentsLabel.Hide;
  WizardForm.TypesCombo.Hide;
  WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(0), ScaleX(184), ScaleY(200));
  WizardForm.ComponentsList.OnItemMouseMove:= @ShowCompDescription;
  WizardForm.ComponentsList.OnMouseLeave := @CompListMouseLeave;

  CompDescImgPanel := TPanel.Create(WizardForm);
  with CompDescImgPanel do
  begin
    Parent := WizardForm.SelectComponentsPage;
    SetBounds(ScaleX(192), ScaleY(0), ScaleX(225), ScaleY(120));
    BevelInner := bvLowered;
  end;

  CompDescImg := TBitmapImage.Create(WizardForm);
  with CompDescImg do
  begin
    Parent := CompDescImgPanel;
    SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
    Stretch := True;
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));
  end;

  AddCompDescription(1, 'CompDescImg1.bmp');
  AddCompDescription(2, 'CompDescImg2.bmp');
end; 

картинка и описание 

[Setup]
AppName=Моя программа
AppVersion=1.5
AppPublisher=YURSHAT
AppPublisherURL=
DefaultDirName={pf}\Моя программа

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

[CustomMessages]
RU.CompName1=Компонент 1
RU.CompName2=Компонент 2
RU.ComponentsInfo=Наведите курсор мыши на компонент, чтобы прочитать его описание.
RU.ComponentsImgInfo=Наведите курсор мыши на компонент, чтобы посмотреть его превью.
RU.CompDesc1=Описание первого компонента
RU.CompDesc2=Описание второго компонента

[Files]
Source: "compiler:WizModernImage.bmp"; DestName: "CompDescImg1.bmp"; Flags: dontcopy
Source: "compiler:WizModernImage-IS.bmp"; DestName: "CompDescImg2.bmp"; Flags: dontcopy
Source: "compiler:WizModernImage.bmp"; DestName: "MainPic.bmp"; Flags: dontcopy

[Components]
Name: comp1; Description: "{cm:CompName1}"; 
Name: comp2; Description: "{cm:CompName2}"; 
Name: comp3; Description: "{cm:CompName1}";
Name: comp4; Description: "{cm:CompName2}";
Name: comp5; Description: "{cm:CompName1}";
Name: comp6; Description: "{cm:CompName2}";
[code]
type
TComponentDesc = record
Description: String;
ImageName: String;
Index: Integer;
end;

var
CompDescs: array of TComponentDesc;
CompDescPanel, CompDescImgPanel: TPanel;
CompDescText: array[1..2] of TLabel;
CompIndex, LastIndex: Integer;
CompDescImg: TBitmapImage;

procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var
i: Integer;
begin
if Index = LastIndex then Exit;
CompIndex := -1;
for i := 0 to GetArrayLength(CompDescs) -1 do
begin
if (CompDescs[i].Index = Index) then
begin
CompIndex := i;
Break;
end;
end;
if (CompIndex >= 0) and (Area = iaItem) then
begin
if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then
ExtractTemporaryFile(CompDescs[CompIndex].ImageName);
CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);
CompDescImg.Show;

CompDescText[2].Caption := CompDescs[CompIndex].Description;
CompDescText[2].Enabled := True;
end else
begin
CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));
CompDescText[2].Caption := CustomMessage('ComponentsInfo');
CompDescText[2].Enabled := False;
end;
LastIndex := Index;
end;

procedure CompListMouseLeave(Sender: TObject);
begin
CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));
CompDescText[2].Caption := CustomMessage('ComponentsInfo');
CompDescText[2].Enabled := False;
LastIndex := -1;
end;

procedure AddCompDescription(AIndex: Integer; ADescription: String; AImageName: String);
var
i: Integer;
begin
i := GetArrayLength(CompDescs);
SetArrayLength(CompDescs, i + 1);
CompDescs[i].Description := ADescription;
CompDescs[i].ImageName := AImageName;
CompDescs[i].Index := AIndex - 1
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('MainPic.bmp');
WizardForm.SelectComponentsLabel.Hide;
WizardForm.TypesCombo.Hide;
WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(0), ScaleX(184), ScaleY(205));
WizardForm.ComponentsList.OnItemMouseMove:= @ShowCompDescription;
WizardForm.ComponentsList.OnMouseLeave := @CompListMouseLeave;

CompDescImgPanel := TPanel.Create(WizardForm);
with CompDescImgPanel do
begin
Parent := WizardForm.SelectComponentsPage;
SetBounds(ScaleX(192), ScaleY(0), ScaleX(225), ScaleY(120));
BevelInner := bvLowered;
end;

CompDescText[1] := TLabel.Create(WizardForm);
with CompDescText[1] do
begin
Parent := CompDescImgPanel;
SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
AutoSize := False;
WordWrap := True;
Enabled := False;
Caption := CustomMessage('ComponentsImgInfo');
end;

CompDescImg := TBitmapImage.Create(WizardForm);
with CompDescImg do
begin
Parent := CompDescImgPanel;
SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
Stretch := True;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));
end;

CompDescPanel := TPanel.Create(WizardForm);
with CompDescPanel do
begin
Parent := WizardForm.SelectComponentsPage;
SetBounds(ScaleX(192), ScaleY(125), ScaleX(225), ScaleY(80));
BevelInner := bvLowered;
end;

CompDescText[2] := TLabel.Create(WizardForm);
with CompDescText[2] do
begin
Parent := CompDescPanel;
SetBounds(ScaleX(5), ScaleY(5), CompDescPanel.Width - ScaleX(10), CompDescPanel.Height - ScaleY(10));
AutoSize := False;
WordWrap := True;
Enabled := False;
Caption := CustomMessage('ComponentsInfo');
end;

AddCompDescription(1, CustomMessage('CompDesc1'), 'CompDescImg1.bmp');
AddCompDescription(2, CustomMessage('CompDesc2'), 'CompDescImg2.bmp');
end; 

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Спасибо! попробовал сделал получилось!)

Не под скажите как сделать?(удалить установленные моды и сделать рез копию)

[media=1]1412412321_fyvvyf.jpg[/media]

Edited by Fenixx

Share this post


Link to post

Short link
Share on other sites

Спасибо! попробовал сделал получилось!)

Не под скажите как сделать?(удалить установленные моды и сделать рез копию)

[media=1]1412412321_fyvvyf.jpg[/media]

http://www.koreanrandom.com/forum/topic/9050-инсталлятор-для-модпаков/?p=157502

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Dark_Knight_MiX спасибо все разобрался! как сделать что бы получился один setap, потому что в моем инсталляторе там ISDone, как сделать так чтобы было сжатие как в ScriptModPack2?

Share this post


Link to post

Short link
Share on other sites

Dark_Knight_MiX спасибо все разобрался! как сделать что бы получился один setap, потому что в моем инсталляторе там ISDone, как сделать так чтобы было сжатие как в ScriptModPack2?

ISDone убери

[Setup]
Compression=lzma2/normal
InternalCompressLevel=ultra64 

Возможные значения:

zip

zip/1 до zip/9

bzip

bzip/1 до bzip/9

lzma

lzma/fast

lzma/normal

lzma/max

lzma/ultra (рассмотрите требования к памяти ниже перед использованием)

lzma/ultra64 (рассмотрите требования к памяти ниже перед использованием)

lzma2

lzma2/fast

lzma2/normal

lzma2/max

lzma2/ultra (рассмотрите требования к памяти ниже перед использованием)

lzma2/ultra64 (рассмотрите требования к памяти ниже перед использованием)

none

Значение по умолчанию:

lzma2/max

 

Описание:

Определяет метод и уровень (1-9) сжатия инсталлятора. Чем выше уровень сжатия, тем медленнее будет создаваться инсталлятор. К тому же может понадобиться больше памяти на сжатие/декомпрессию.

 

Метод zip быстр в обоих направлениях, не требователен к памяти (требуется менее 1MB для обоих направлений для сжатия на 9 уровне), но сжимает не так хорошо, как другие поддерживаемые методы. zip, как lzma2, имеет единственное достоинство: в отличие от остальных методов он не будет увеличивать несжимаемые файлы (т.е. уже сжатые файлы). Если уровень сжатия не указан, он равен 7.

 

bzip метод сжатия, который используется компрессором bzip2 [external link]. Он обычно сжимает лучше, чем zip , но работает медленнее в обоих направлениях. Для сжатия требуется более 8 MB памяти, для декомпрессии более 4 MB. Если уровень сжатия не указан, он равен 9.

 

lzma метод сжатия, который используется компрессором 7-Zip LZMA [external link]. Обычно он сжимает гораздо лучше, чем zip и bzip. Впрочем, это зависит от уровня сжатия - он может оказаться и гораздо медленнее и потребовать гораздо больше памяти. В таблице показано примерное потребление памяти каждого уровня сжатия lzma. Если уровень сжатия не указан, он равен максимальному.

 

Распаковка (размер словаря) Сжатие

fast (худший) 32 КБ 3 МБ

normal 2 МБ 26 МБ

max (по умолчанию) 8 МБ 95 МБ

ultra 32 МБ 372 МБ

ultra64 (лучший) 64 MБ 676 MБ

 

lzma2 метод сжатия, который используется компрессором 7-Zip LZMA2 [external link]. LZMA2 - измененная версия LZMA, который предлагает лучшую степень сжатия для несжимаемых данных (случайные данные расширяются приблизительно на 0.005 %, по сравнению с 1.35 % с исходным LZMA), и дополнительно может сжать многократные части больших файлов параллельно, значительно увеличивая скорость сжатия, но с возможным сокращением степени сжатия (см. LZMANumBlockThreads). Как LZMA, LZMA 2 может использовать много памяти; см. вышеупомянутую таблицу. Если уровень сжатия не указан, он равен максимальному.

Edited by Dark_Knight_MiX
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

Подключай языки и используй для каждой надписи вариации на разных языках:

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "EN"; MessagesFile: "compiler:Languages\English.isl"

[CustomMessages]
RU.CompName1=Компонент 1
RU.CompName2=Компонент 2
EN.CompName1=Component 1
EN.CompName2=Component 2

СПС а как изменить язык для BackUpPage.iss

Share this post


Link to post

Short link
Share on other sites

 

 

все удалил про ISDone выдает ошибку
Не всё удалил.

Share this post


Link to post

Short link
Share on other sites

Не всё удалил.

В том то и проблема то что все удалил, в поисковике искал тоже искал ничего не нашел

Share this post


Link to post

Short link
Share on other sites

В том то и проблема то что все удалил, в поисковике искал тоже искал ничего не нашел

Удалил не всё. Показывай тогда код.

Share this post


Link to post

Short link
Share on other sites

Удалил не всё. Показывай тогда код.

'Код'

#define MyAppName "mod"

#define NeedSize 6100

#define NeedMem 512

///ñ êîìïîíåíòàìè è áåç

#define Components

////ñ ñëàéäàìè èëè ïðîñòî ñ êàðòèíêîé

;#define Slides

#define Image

/////////////////////////////////////

[setup]

AppName={#MyAppName}

AppVersion=2.0

AppPublisher=avtor

DefaultDirName={pf}\{#MyAppName}

DefaultGroupName={#MyAppName}

OutputBaseFilename=setup

Compression=lzma2/ultra64

SolidCompression=true

[Languages]

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

//Name: eng; MessagesFile: compiler:Languages\English.isl

[Files]

Source: "MODS\PRICEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\P;

Source: "MODS\DAMAGEPANEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\DP;

//=== çâîíîê êðèòà ===///=== ñòàâèòü âíà÷àëå êîìàíäó êîïèðîâàíèå ôàéëîâ, à óæå ïîòîì óñòàíîâêó ìîäà ===\\

Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\0.8.6\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: KMP\ZK;

Source: "MODS\ZVONOK\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\ZK;

Source: "MODS\ZOOM\COMANDOR\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z;

Source: "MODS\ZOOM\NOSCROLL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z\NS;

Source: "MODS\ZOOM\ZOOM4X\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z\ZX4;

Source: "MODS\TREE\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\T;

Source: "MODS\INFO\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\I;

Source: "MODS\COLORMESENGER\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\CM;

Source: "MODS\CLOCK\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\CLOCK;

Source: "MODS\ANGAR\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\A;

Source: "MODS\XVM\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\XVM;

Source: dll\b2p.dll; Flags: dontcopy

Source: dll\botva2.dll; Flags: dontcopy

Source: dll\gdiplus.dll; Flags: dontcopy

Source: dll\isSlideShow.dll; Flags: dontcopy

Source: dll\InnoCallback.dll; Flags: dontcopy

#ifdef Slides

Source: SlidesFiles\*; Flags: dontcopy

#endif

#ifdef Image

Source: Files\fonAC.jpg; Flags: dontcopy

#endif

Source: Files\about.png; Flags: dontcopy

Source: Files\aboutlog.png; Flags: dontcopy

Source: Files\Button.png; Flags: dontcopy

Source: Files\cb.png; Flags: dontcopy

Source: Files\dir.png; Flags: dontcopy

Source: Files\edit.png; Flags: dontcopy

Source: Files\exit.png; Flags: dontcopy

Source: Files\group.png; Flags: dontcopy

Source: Files\min.png; Flags: dontcopy

Source: Files\pb.png; Flags: dontcopy

Source: Files\pb1.png; Flags: dontcopy

Source: Files\tasks.png; Flags: dontcopy

Source: Files\t&c.bmp; Flags: dontcopy

Source: Files\ready.png; Flags: dontcopy

#ifdef Components

Source: Files\work1.jpg; Flags: dontcopy

Source: Files\work2.jpg; Flags: dontcopy

Source: Files\work3.jpg; Flags: dontcopy

Source: Files\work4.jpg; Flags: dontcopy

Source: Files\work5.jpg; Flags: dontcopy

Source: Files\work6.jpg; Flags: dontcopy

Source: Files\work7.jpg; Flags: dontcopy

Source: Files\work8.jpg; Flags: dontcopy

Source: Files\workerror.jpg; Flags: dontcopy

#else

Source: Files\2work1.jpg; Flags: dontcopy

Source: Files\2work2.jpg; Flags: dontcopy

Source: Files\2work3.jpg; Flags: dontcopy

Source: Files\2work4.jpg; Flags: dontcopy

Source: Files\2work5.jpg; Flags: dontcopy

Source: Files\2work6.jpg; Flags: dontcopy

Source: Files\2work7.jpg; Flags: dontcopy

Source: Files\2workerror.jpg; Flags: dontcopy

#endif

[CustomMessages]

rus.Welcome1=Âàñ ïðèâåòñòâóåò Ìàñòåð óñòàíîâêè èãðû %n«{#MyAppName}»

rus.Welcome2=Ðåêîìåíäóåòñÿ çàêðûòü àíòèâèðóñíûå ïðîãðàììû, à òàêæå âñå ïðî÷èå ïðèëîæåíèÿ ïåðåä òåì, êàê ïðîäîëæèòü.%n%nÍàæìèòå «Äàëåå», ÷òîáû ïðîäîëæèòü, èëè  «Îòìåíà», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.

rus.Dir1=Ïðîãðàììà óñòàíîâèò «{#MyAppName}» â ñëåäóþùóþ ïàïêó.

rus.Dir2=Íàæìèòå «Äàëåå», ÷òîáû ïðîäîëæèòü. Åñëè Âû õîòèòå âûáðàòü äðóãóþ ïàïêó, íàæìèòå «Îáçîð».

rus.Group1=Ïðîãðàììà ñîçäàñò ÿðëûêè â ñëåäóþùåé ïàïêå ìåíþ «Ïóñê».

rus.FreeSpace=Äîñòóïíî ìåñòà íà äèñêå:.....

rus.NeedSpace=Òðåáóåòñÿ ìåñòà äëÿ óñòàíîâêè:.....

rus.AfterInstallSpace=Ïîñëå óñòàíîâêè èãðà çàéìåò:.....

rus.nic=Íå ñîçäàâàòü ïàïêó â ìåíþ «Ïóñê»

rus.Comp=Âûáåðèòå êîìïîíåíòû, êîòîðûå Âû õîòèòå óñòàíîâèòü; %nñíèìèòå ôëàæêè ñ êîìïîíåíòîâ, óñòàíàâëèâàòü êîòîðûå íå òðåáóåòñÿ. %nÍàæìèòå «Äàëåå», êîãäà Âû áóäåòå ãîòîâû ïðîäîëæèòü.

rus.dop=Âûáåðèòå äîïîëíèòåëüíûå çàäà÷è, êîòîðûå íåîáõîäèìî âûïîëíèòü

rus.ic=Äîáàâèòü ÿðëûê íà ðàáî÷èé ñòîë

rus.Fin1=Óñòàíîâêà èãðû «{#MyAppName}» %nóñïåøíî çàâåðøåíà

rus.Fin2=%n%nÄëÿ åå çàïóñêà âûáåðèòå ñîîòâåòñòâóþùèé ÿðëûê â ìåíþ "Ïóñê" %nèëè íà Ðàáî÷åì ñòîëå. %n%nÍàæìèòå "Çàâåðøèòü", ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.

rus.ExtractedFile=Èçâëåêàåòñÿ ôàéë:

rus.Extracted=Óñòàíîâêà...

rus.Error=Îøèáêà ðàñïàêîâêè!

rus.ElapsedTime=Ïðîøëî:

rus.RemainingTime=Îñòàëîñü âðåìåíè:

rus.rbc=Îòêàò óñòàíîâêè...

rus.p=Ïðîãðåññ:

rus.exit=Âûõîä

rus.Error1=Óñòàíîâêà èãðû «{#MyAppName}» íå çàâåðøåíà.

rus.Error2=%nÂî âðåìÿ óñòàíîâêè ïðîèçîøëà îøèáêà, ïîæàëóéñòà îòêëþ÷èòå ñòîðîííèå ïðîãðàììû è ïîâòîðèòå ïîïûòêó óñòàíîâêè. %n%nÍàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.

rus.DX=Îáíîâèòü DirectX

rus.VC=Óñòàíîâèòü Microsoft Visual C++

rus.ready1=Ïðîãðàììà óñòàíîâêè ãîòîâà íà÷àòü óñòàíîâêó «{#MyAppName}» íà Âàø êîìïüþòåð.

rus.ready2=Èíôîðìàöèÿ:

rus.ready3=Èãðà áóäåò óñòàíîâëåíà â

rus.ready4=Ïàïêà â ìåíþ ïóñê

rus.ready5=Áóäåò ñîçäàí ÿðëûê íà ðàáî÷åì ñòîëå

rus.ready6=ßðëûê íà ðàáî÷åì ñòîëå ñîçäàí íå áóäåò

rus.doppo=Óñòàíîâèòü äîïîëíèòåëüíîå ïðîãðàììíîå îáåñïå÷åíèå

rus.ready7=Áóäåò óñòàíîâëåíî äîïîëíèòåëüíîå ïðîãðàììíîå îáåñïå÷åíèå

rus.ready8=Äîïîëíèòåëüíîå ïðîãðàììíîå îáåñïå÷åíèå óñòàíîâëåíî íå áóäåò

[icons]

Name: {userdesktop}\{#MyAppName}; Filename: {app}\Data\Engine\KapowMulti.exe; WorkingDir: {app}; IconFilename: {app}\Data\Engine\KapowMulti.exe; Check: CheckError and IconsChecks

Name: {group}\{cm:UninstallProgram}; Filename: {uninstallexe}; Check: CheckError

[Run]

Filename: {src}\Redist\dxwebsetup.exe; WorkingDir: {src}\Redist\; Flags: waituntilterminated; Check: CheckError and DpoChecks

Filename: {src}\Redist\vcredist_x86.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: not IsWin64 and CheckError and DpoChecks

Filename: {src}\Redist\vcredist_x64.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: IsWin64 and CheckError and DpoChecks

[Tasks]

Name: VCCheck; Description: Óñòàíîâèòü Microsoft Visual C++ 2005 Redist

#ifdef Components

[Types]

Name: custom; Description: Full installation; Flags: iscustom

[Components]

Name: KMP; Description: KPAH Mod Pack; Types: custom; Flags: fixed

Name: KMP\P; Description: 1. Ïðèöåë.; Flags: disablenouninstallwarning

Name: KMP\DP; Description: 2. Äàìàã ïàíåëü.; Flags: disablenouninstallwarning

Name: KMP\ZK; Description: 2. Çâóêîâîé ìîä çâîíîê ïðè êðèòå ìîäóëÿ.; Flags: disablenouninstallwarning

Name: KMP\Z; Description: 3. Zoom.; Flags: disablenouninstallwarning

Name: KMP\Z\NS; Description: à. NoScroll- êîë¸ñèêî íå ïåðåêëþ÷àåò â ñíàéïåðñêèé ðåæèì; Flags: checkablealone ;

Name: KMP\Z\ZX4; Description: á. 4-õ ïîçèöèîííûé ñíàéïåðñêèé ïðèöåë ; Flags: checkablealone ;

Name: KMP\T; Description: 4. Äåðåâî ðàçâèòèÿ.;

Name: KMP\I; Description: 5. Èíôîðìàöèîííàÿ ïàíåëü âûáðàííîé öåëè.;

Name: KMP\CM; Description: 6. Öâåòíûå ñîîáùåíèÿ(ßñåíÊðàñåí).;

Name: KMP\CLOCK; Description: 7. ×àñû â àíãàðå.;

Name: KMP\A; Description: 8. Àíãàð.;

Name: KMP\XVM; Description: 9. Ïîëüçîìåð(Îëåíåìåð).;

#endif

[uninstallDelete]

Type: filesandordirs; Name: {app}

const  PCFonFLY = true;  notPCFonFLY = false;  VK_ESCAPE = 27;varimg1, img2: longint;  Cancel: Integer;  Error: Boolean;  PCFVer: Double;  edit, dir, group, work1, work2, work3, work4, work5, work6, work7, work8, workerror, tasks, ready: Longint;  hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, Min, CloseBtn, nic, IconsCheck, CancelBtn, MinBtn, AboutBtn, dpo: HWND;  WFButtonFont: TFont;  UpdBtn, UpdTasks: TTimer;  WelcomeLabel1, MainLabel, WelcomeLabel2, dir1, IconsCheckLbl,  NeedSpaceLabel, Dir1Label, FreeSpaceLabel, niclabel, doplbl, Pct, CurrFileName, Time1, Time2, i, dxlbl, vclbl, complbl, ready0, ready1, ready2, ready3, ready4, ready5, ready6, ready7, ready8, ready9, dpolbl: TLabel;  FreeMB, TotalMB: Cardinal;  SizeInt: Longint;  Enabled: Boolean;  LogoForm: TForm; closebnt: HWND;    TimerID: LongWord;  CurrentPicture:integer;  PicList: TStringlist;  imgpanel: tpanel;#include "AddIss\botva2.iss"#include "AddIss\progressbar.iss"var pb: TImgPB;function ReleaseCapture: Longint; external '[email protected] stdcall';///type  TCallback = function (OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;type  TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);function GetKeyState(nVirtKey: Integer): ShortInt; external 'GetKeyState@user32 stdcall delayload';///#ifdef Slidesfunction WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external '[email protected] stdcall';function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external '[email protected] stdcall';function GetSystemMetrics(nIndex:Integer):Integer; external '[email protected] stdcall';procedure InitializeSlideShow(Hwnd:Thandle; l,t,w,h:integer;Animate:boolean; Stretch:integer); external 'InitializeSlideShow@files:isslideshow.dll stdcall';procedure DeinitializeSlideShow; external 'DeinitializeSlideShow@files:isslideshow.dll stdcall';procedure ShowImage_(file_: PAnsiChar; effect_: longint); external 'ShowImage@files:isslideshow.dll stdcall';#endif////procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  ReleaseCapture;  SendMessage(WizardForm.Handle,$0112,$F012,0)end;function ProgressCallback(OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;begin  if (GetKeyState(VK_ESCAPE) < 0) then begin if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1; end;  if OveralPct<=1000 then ImgPBSetPosition(pb, OveralPct);  Pct.Caption := ExpandConstant('{cm:p} ')+IntToStr(OveralPct div 10)+'.'+chr(48 + OveralPct mod 10)+'%';  CurrFileName.Caption:=ExpandConstant('{cm:ExtractedFile} ')+MinimizePathName(CurrentFile, CurrFileName.Font, CurrFileName.Width-ScaleX(100));  Time1.Caption:=ExpandConstant('{cm:ElapsedTime} ')+TimeStr2;  Time2.Caption:=ExpandConstant('{cm:RemainingTime} ')+TimeStr1;  Result := Cancel;end;function IconsChecks: Boolean;begin  Result:= BtnGetChecked(IconsCheck);end;function DpoChecks: Boolean;begin  Result:= BtnGetChecked(dpo);end;procedure CancelButtonOnClick(h: HWND);begin  SuspendProc;  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1;  ResumeProc;end;function cm(s: PAnsiChar): String;begin  Result:= ExpandConstant('{cm:'+s+'}');end;#ifdef Slidesprocedure ShowImage(file: string);begin  if Pos(ExpandConstant('{tmp}\'), File)>0 then StringChange(File, ExpandConstant('{tmp}\'), '');  if Pos('{tmp}\', File)>0 then StringChange(File, '{tmp}\', '');  ExtractTemporaryFile(file);  ShowImage_(ExpandConstant('{tmp}\'+File), 1);  DeleteFile(ExpandConstant('{tmp}\'+File));end;#endifprocedure HideControls;begin  Pct.Hide; i.Hide; CurrFileName.Hide; Time1.Hide; Time2.Hide; ImgPBDelete(pb);  if Error then begin i.Show; i.Caption:= cm('rbc'); end;end;procedure CreateControls;begin  Pct := TLabel.Create(WizardForm);  with Pct do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Left:= ScaleX(55);    Top:= ScaleY(420);    Width:= ScaleX(180);    Transparent:= true;    BringToFront;  end;  CurrFileName := TLabel.Create(WizardForm);  with CurrFileName do begin    Parent:= WizardForm;    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    AutoSize:= false;    Width:= ScaleX(300);    Left:= ScaleX(55);    Top:= ScaleY(375);    Transparent:= true;  end;  Time1 := TLabel.Create(WizardForm);  with Time1 do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Width:= ScaleX(200);    Left:= ScaleX(55);    Top:= ScaleY(390);    Transparent:= true;  end;  Time2 := TLabel.Create(WizardForm);  with Time2 do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Width:= Time1.Width+ScaleX(40);    Left:= ScaleX(55);    Top:= Time1.Top+ScaleY(15);    Transparent:= true;  end;  i := TLabel.Create(WizardForm);  with i do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Width:= Time1.Width+ScaleX(40);    Left:= ScaleX(55);    Top:= ScaleY(360);    Transparent:= true;    Caption:= cm('Extracted');  end;end;function CheckError: Boolean;begin  Result:= not Error;end;///procedure FrameMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  WizardForm.SetFocus;  ReleaseCapture;  SendMessage(WizardForm.Handle,$0112,$F012,0);end;function InitializeSetup:boolean;begin  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');  if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');  if not FileExists(ExpandConstant('{tmp}\gdiplus.dll')) then ExtractTemporaryFile('gdiplus.dll');  Result:=True;end;//************************************************ [Íà÷àëî - Çàãðóçêà èçîáðàæåíèé è ïîäãîòîâêà âèçàðäà] ***************************************************//procedure CreateWizardImg;beginwith WizardForm do beginBorderStyle := bsNone;ClientWidth:=ScaleX(733);ClientHeight:=ScaleY(506);InnerNotebook.Hide;OuterNotebook.Hide;Bevel.Hide;Center;Color:= $191919;end;  #ifdef Slides  imgPanel := TPanel.Create(WizardForm);  imgPanel.Top := ScaleY(73);  imgPanel.Left := ScaleX(19);  imgPanel.Width := ScaleX(695);  imgPanel.Height := ScaleY(225);  imgPanel.BevelOuter := bvNone;  imgPanel.Parent := WizardForm;  InitializeSlideShow(imgPanel.Handle, ScaleX(0), ScaleY(0), ScaleX(695), ScaleY(225), true, 8);  #endif  #ifdef Components  work1:= ImgLoad(WizardForm.handle, ExpandConstant('work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work2:= ImgLoad(WizardForm.handle, ExpandConstant('work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work3:= ImgLoad(WizardForm.handle, ExpandConstant('work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work4:= ImgLoad(WizardForm.handle, ExpandConstant('work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work5:= ImgLoad(WizardForm.handle, ExpandConstant('work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work6:= ImgLoad(WizardForm.handle, ExpandConstant('work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work7:= ImgLoad(WizardForm.handle, ExpandConstant('work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work8:= ImgLoad(WizardForm.handle, ExpandConstant('work8.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  workerror:= ImgLoad(WizardForm.handle, ExpandConstant('workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  #else  work1:= ImgLoad(WizardForm.handle, ExpandConstant('2work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work2:= ImgLoad(WizardForm.handle, ExpandConstant('2work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work3:= ImgLoad(WizardForm.handle, ExpandConstant('2work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work4:= ImgLoad(WizardForm.handle, ExpandConstant('2work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work5:= ImgLoad(WizardForm.handle, ExpandConstant('2work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work6:= ImgLoad(WizardForm.handle, ExpandConstant('2work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work7:= ImgLoad(WizardForm.handle, ExpandConstant('2work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  workerror:= ImgLoad(WizardForm.handle, ExpandConstant('2workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  #endif  #ifdef Image  ImgLoad(WizardForm.handle, ExpandConstant('fonAC.jpg'), ScaleX(19), ScaleY(73), ScaleX(695), ScaleY(225), True, True);  #endif  edit:= ImgLoad(WizardForm.handle, ExpandConstant('edit.png'), ScaleX(145), ScaleY(380), ScaleX(328), ScaleY(24), True, True);  ready:= ImgLoad(WizardForm.handle, ExpandConstant('ready.png'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  dir:= ImgLoad(WizardForm.handle, ExpandConstant('dir.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);  group:= ImgLoad(WizardForm.handle, ExpandConstant('group.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);  tasks:= ImgLoad(WizardForm.handle, ExpandConstant('tasks.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);  ImgApplyChanges(WizardForm.Handle);end;//************************************************ [Êîíåö - Çàãðóçêà èçîáðàæåíèé è ïîäãîòîâêà âèçàðäà] ***************************************************////************************************************ [Íà÷àëî - Òåêñòóðû êíîïîê] ***************************************************//procedure SetStateNewButtons;begin  with WizardForm.BackButton do begin    BtnSetText(hBackBtn,PAnsiChar(Caption));    BtnSetVisibility(hBackBtn,Visible);    BtnSetEnabled(hBackBtn,Enabled);    BtnRefresh(hBackBtn);  end;  with WizardForm.NextButton do begin    BtnSetText(hNextBtn,PAnsiChar(Caption));    BtnSetVisibility(hNextBtn,Visible);    BtnSetEnabled(hNextBtn,Enabled);    BtnRefresh(hNextBtn);  end;  with WizardForm.CancelButton do begin    BtnSetText(hCancelBtn, PAnsiChar(cm('exit')));    BtnSetVisibility(hCancelBtn,Visible);    BtnSetEnabled(hCancelBtn,Enabled);    BtnRefresh(hCancelBtn);  end;  BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));  BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));end;procedure TimerRefreshBtn(S: TObject);begin  BtnRefresh(hBackBtn);  BtnRefresh(hNextBtn);  BtnRefresh(hCancelBtn);  BtnRefresh(hDirBrowseBtn);  BtnRefresh(hGroupBrowseBtn);  if BtnGetChecked(nic) then ready3.Caption:= cm('ready4') + ': ' + '-- --' else ready3.Caption:= cm('ready4') + ': ' + WizardForm.GroupEdit.Text;end;procedure WizardFormBtnClick(hBtn: HWND);var  Btn:TButton;begin  case hBtn of    hCancelBtn: Btn:=WizardForm.CancelButton;    hNextBtn: Btn:=WizardForm.NextButton;    hBackBtn: Btn:=WizardForm.BackButton;    hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;    hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;  end;  Btn.OnClick(Btn);  SetStateNewButtons;  BtnRefresh(hBtn);end;procedure MinimizeBtnClick(h: HWND);begin  WizardForm.SetFocus;  ReleaseCapture;  SendMessage(WizardForm.Handle,$112,61472,0);end;procedure CancelBtnClick(h: HWND);begin  WizardForm.CancelButton.OnClick(WizardForm.CancelButton);end;procedure CancelBtnClick1(h: HWND);begin  LogoForm.Hide;  BtnSetEnabled(AboutBtn, not LogoForm.Visible);end;procedure NoIconsClick(hBtn: HWND);var  Check:boolean;begin  Check:= BtnGetChecked(hBtn);  BtnSetEnabled(hGroupBrowseBtn, not Check);  WizardForm.GroupEdit.Enabled:= not Check;  WizardForm.NoIconsCheck.Checked:= Check;  WizardForm.GroupEdit.Color:= $ffffff;end;procedure DpoOnClick(hBtn: TObject);begin  BtnSetChecked(dpo, not BtnGetChecked(dpo));  if BtnGetChecked(dpo) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;end;procedure DpoOnClick1(hBtn: HWND);begin  if BtnGetChecked(hBtn) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;end;procedure AboutClick(hBtn: HWND);var ok: HWND;begin  closebnt:= BtnCreate(LogoForm.Handle, ScaleX(473 - 20), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);  BtnSetEvent(closebnt, BtnClickEventID,WrapBtnCallback(@CancelBtnClick1, 1));  ok:=BtnCreate(LogoForm.Handle, ScaleX(373), ScaleY(403), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(ok,BtnClickEventID,WrapBtnCallback(@CancelBtnClick1,1));  BtnSetFont(ok,WFButtonFont.Handle);  BtnSetFontColor(ok, $363636, $363636, $363636, clgray);  BtnSetText(ok,'OK');  ImgLoad(LogoForm.Handle, 'aboutlog.png', 0, 0, ScaleX(473), ScaleY(440), true, true);  LogoForm.Show;  BtnSetEnabled(AboutBtn, not LogoForm.Visible);  ImgApplyChanges(LogoForm.Handle);end;procedure IconsClick(hBtn: HWND);var Check: Boolean;begin  if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;end;procedure nicOnClick(Sender: TObject);begin  BtnSetChecked(nic, not BtnGetChecked(nic));  NoIconsClick(nic);end;procedure IconsOnClick(Sender: TObject);begin  BtnSetChecked(IconsCheck, not BtnGetChecked(IconsCheck));  if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;end;procedure ButtonsTextures;begin  WFButtonFont:=TFont.Create;  WFButtonFont.Name:= 'Tahoma';  WFButtonFont.Size:= 9;  WFButtonFont.Color:= $363636;with WizardForm.NextButton do begin  hNextBtn:=BtnCreate(WizardForm.Handle, ScaleX(500), ScaleY(470), ScaleX(93), ScaleY(33), 'button.png', 5, False);  BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hNextBtn,WFButtonFont.Handle);  BtnSetFontColor(hNextBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;with WizardForm.BackButton do begin  hBackBtn:=BtnCreate(WizardForm.Handle, ScaleX(400), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hBackBtn,WFButtonFont.Handle);  BtnSetFontColor(hBackBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;with WizardForm.CancelButton do begin  hCancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(620), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hCancelBtn,WFButtonFont.Handle);  BtnSetFontColor(hCancelBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;  CancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(717), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);  BtnSetEvent(CancelBtn, BtnClickEventID,WrapBtnCallback(@CancelBtnClick,1));  BtnSetFont(CancelBtn, WFButtonFont.Handle);  BtnSetText(CancelBtn,'');  MinBtn:=BtnCreate(WizardForm.Handle, ScaleX(704), ScaleY(4), ScaleX(8), ScaleY(33), ExpandConstant('min.png'), 1, false);  BtnSetEvent(MinBtn, BtnClickEventID,WrapBtnCallback(@MinimizeBtnClick,1));  AboutBtn:=BtnCreate(WizardForm.Handle, ScaleX(20), ScaleY(470), ScaleX(29), ScaleY(35), ExpandConstant('about.png'), 5, false);  BtnSetChecked(AboutBtn, true);  BtnSetEvent(AboutBtn, BtnClickEventID,WrapBtnCallback(@AboutClick,1));with WizardForm.DirBrowseButton do begin  hDirBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);  BtnSetFontColor(hDirBrowseBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;with WizardForm.GroupBrowseButton do begin  hGroupBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);  BtnSetFontColor(hGroupBrowseBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;  nic:=BtnCreate(WizardForm.Handle, ScaleX(140),ScaleY(405), ScaleX(30),ScaleY(30), ExpandConstant('cb.png'), 1, true);  BtnSetChecked(nic, false);  BtnSetEvent(nic,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));  IconsCheck:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(380), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);  BtnSetChecked(IconsCheck, true);  BtnSetEvent(IconsCheck, BtnClickEventID, WrapBtnCallback(@IconsClick, 1));  dpo:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(410), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);  BtnSetChecked(dpo, true);  BtnSetEvent(dpo, BtnClickEventID, WrapBtnCallback(@DpoOnClick1, 1));end;//************************************************ [Êîíåö - Òåêñòóðû êíîïîê] ***************************************************////************************************************[Íà÷àëî - Ïðîâåðêà ìåñòà íà äèñêå]*************************************************************//Function NumToStr(Float: Extended): String;Begin  Result:= Format('%.2n', [Float]); StringChange(Result, ',', ',');  while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = ',')) and (Pos(',', Result) > 0) do  SetLength(Result, Length(Result)-1);End;function CompareNum(FirstNum, SecondNum: Integer): Boolean;beginif FirstNum < SecondNum then Result:= False else Result:= True;end;Function MbOrTb(Byte: Extended): AnsiString;beginif Byte < 1024 then Result:= NumToStr(Byte) + ' MB' else  if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' GB' else     Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' TB'end;procedure GetFreeSpaceCaption(Sender: TObject);var  Path: AnsiString; gsod: Boolean;begin  Path := ExtractFileDrive(WizardForm.DirEdit.Text);  gsod:= GetSpaceOnDisk(Path, True, FreeMB, TotalMB);  if gsod then begin    FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTB(FreeMb) + ' (' + IntToStr((FreeMb*100) div TotalMB) + ' %)';    NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt);    BtnSetEnabled(hNextBtn, true);    WizardForm.NextButton.Enabled:= true;  end else  if not gsod then begin    FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} 0 MB');    NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt)    BtnSetEnabled(hNextBtn, false);    WizardForm.NextButton.Enabled:= false;    Exit;  end;  ready2.Caption:=ready2.Caption + ': ' + WizardForm.DirEdit.Text;end;procedure NeedSpace;beginSizeInt:= {#NeedSize}FreeSpaceLabel := TLabel.Create(WizardForm);FreeSpaceLabel.SetBounds(ScaleX(145), ScaleY(410), ScaleX(209), ScaleY(13))FreeSpaceLabel.Parent := WizardForm;FreeSpaceLabel.Font.Name:='Arial';FreeSpaceLabel.Font.Size:= 8;FreeSpaceLabel.Font.Color:= $363636;FreeSpaceLabel.Transparent:=true;FreeSpaceLabel.Font.Style := [fsBold];NeedSpaceLabel := TLabel.Create(WizardForm);NeedSpaceLabel.SetBounds(ScaleX(145), ScaleY(430), ScaleX(209), ScaleY(13))NeedSpaceLabel.Parent := WizardForm;NeedSpaceLabel.Font.Name:='Arial';NeedSpaceLabel.Font.Size:= 8;NeedSpaceLabel.Font.Color:= $363636;NeedSpaceLabel.Transparent:=true;NeedSpaceLabel.Font.Style:= [fsBold];WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;end;//************************************************[Êîíåö - Ïðîâåðêà ìåñòà íà äèñêå]*************************************************************////************************************************ [Íà÷àëî - Ñîçäàíèå ëåáåëîâ] ***************************************************//procedure CreateLabel;begin//Áåç ýòîãî êíîïêè íîðìàëüíî íå ïåðåðèñîâûâàþòñÿ, åñëè çàïóñòèòü ñåòàï è ïðè ýòîì íàâåñòè êóðñîð íà êíîïêó.  UpdBtn:= TTimer.Create(nil);  UpdBtn.Interval:= 1;  UpdBtn.OnTimer:= @TimerRefreshBtn;///////////////////////////////////////////////////////////////////////////////////////////////////////////MainLabel:= TLabel.Create(WizardForm);with MainLabel dobegin  Left:= ScaleX(0);  Top:= ScaleY(7);  Width:= ScaleX(752);  Height:= ScaleY(34);  AutoSize:= false;  Transparent:= true;  WordWrap:= true;  Font.Name:='Corbel';  Alignment:= taCenter;  Font.Size:= 10;  Font.Color:= $aeacac;  Font.Style := [fsBold];  Parent:= WizardForm;  OnMouseDown:=@LabelOnMouseDown;  Caption:= WizardForm.Caption;end;//WelcomeWelcomeLabel1:= TLabel.Create(WizardForm);with WelcomeLabel1 dobegin  Left:= ScaleX(140);  Top:= ScaleY(330);  Width:= ScaleX(450);  Height:= ScaleY(65);  AutoSize:= false;  Transparent:= true;  WordWrap:= true;  Font.Name:='Arial';  Font.Size:= 10;  Font.Color:=$363636;  Font.Style := [fsBold];  Alignment := taCenter;  Parent:= WizardForm;  Caption:= cm('Welcome1');end;WelcomeLabel2:=TLabel.Create(WizardForm);with WelcomeLabel2 dobegin  Left:= ScaleX(140);  Top:= ScaleY(370);;  Width:= ScaleX(450);  Height:= ScaleY(200);  AutoSize:= false;  WordWrap:= true;  Font.Name:='Arial';  Font.Size:= 9;  Font.Color:=$363636;  Alignment := taCenter;  Font.Style := [fsBold];  Transparent:= true;  Parent:= WizardForm;  Caption:= cm('Welcome2');end;//SelectDirwith WizardForm.DirEdit do begin  Parent:= WizardForm;  Left:= ScaleX(148);  Top:= ScaleY(384);  BorderStyle:= bsNone;

  Color:= $ffffff;

  Font.Name:= 'Arial';

  Font.Size:= 9;

  Font.Color:= $363636;

  Width:= ScaleX(324);

  Height:= ScaleY(18);

  end;

with WizardForm.GroupEdit do begin

  Parent:= WizardForm;

  Left:= ScaleX(148);

  Top:= ScaleY(384);

  BorderStyle:= bsNone;

  Color:= $ffffff;

  Font.Name:= 'Arial';

  Font.Size:= 9;

  Font.Color:= $363636;

  Width:= ScaleX(324);

  Height:= ScaleY(18);

  end;

dir1:=TLabel.Create(WizardForm);

with dir1 do

begin

  Left:= ScaleX(300);

  Top:= ScaleY(480);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:= $363636;

  Parent:= WizardForm;

  Caption:= cm('dir1');

end;

/////////////////////////

niclabel:=TLabel.Create(WizardForm);

with niclabel do

begin

  Left:= ScaleX(170);

  Top:= ScaleY(412);

  Width:= ScaleX(250);

  Height:= ScaleY(16);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('nic');

  OnClick:= @nicOnClick;

end;

/////////////////////////////////

ExtractTemporaryFile('t&c.bmp');

with WizardForm.ComponentsList do begin

  Left:= ScaleX(435);

  Top:= ScaleY(330);

  Width:= ScaleX(275);

  Height:= ScaleY(110);

  Color:= WizardForm.Color;

  Font.Color:= $363636;

  Font.Style:= [fsBold];

  Font.Size:= 8;

  Font.Name:= 'Arial'

  BorderStyle:= bsSingle;

  Font.Color:= $363636;

  LoadBGBmpFromFile(ExpandConstant('{tmp}\t&c.bmp'), 0, 0);

  Parent:= WizardForm;

end;

complbl:=TLabel.Create(WizardForm);

with complbl do

begin

  Left:= ScaleX(20);

  Top:= ScaleY(363);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 9;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('comp');

end;

///////////////////////////////

doplbl:=TLabel.Create(WizardForm);

with doplbl do

begin

  Left:= ScaleX(215);

  Top:= ScaleY(348);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('dop');

end;

IconsCheckLbl:=TLabel.Create(WizardForm);

with IconsCheckLbl do

begin

  Left:= ScaleX(230);

  Top:= ScaleY(387);

  Width:= ScaleX(250);

  Height:= ScaleY(16);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ic');

  OnClick:= @IconsOnClick;

end;

//////////////////////////////////

DeleteFile(ExpandConstant('{tmp}\t&c.bmp'));

ready0:=TLabel.Create(WizardForm);

with ready0 do

begin

  Left:= ScaleX(140);

  Top:= ScaleY(340);

  Width:= ScaleX(470);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready1')

end;

ready1:=TLabel.Create(WizardForm);

with ready1 do

begin

  Left:= ScaleX(143);

  Top:= ScaleY(370);

  Width:= ScaleX(550);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready2')

end;

ready2:=TLabel.Create(WizardForm);

with ready2 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(385);

  Width:= ScaleX(460);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready3');

end;

ready3:=TLabel.Create(WizardForm);

with ready3 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(400);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready4');

end;

ready4:=TLabel.Create(WizardForm);

with ready4 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(415);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready5');

end;

ready5:=TLabel.Create(WizardForm);

with ready5 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(415);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready6');

end;

dpolbl:=TLabel.Create(WizardForm);

with dpolbl do

begin

  Left:= ScaleX(230);

  Top:= ScaleY(423);

  Width:= ScaleX(350);

  Height:= ScaleY(16);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('doppo');

  OnClick:= @DpoOnClick;

end;

ready6:=TLabel.Create(WizardForm);

with ready6 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(430);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready7');

end;

ready7:=TLabel.Create(WizardForm);

with ready7 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(430);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready8');

end;

  LogoForm:= TForm.Create(WizardForm);

  LogoForm.BorderStyle:= bsNone;

  LogoForm.SetBounds(ScaleX(WizardForm.Width div 2 - 230), ScaleY(40), ScaleX(473), ScaleY(440));

  LogoForm.Parent:= WizardForm;

end;

//************************************************ [Êîíåö - Ñîçäàíèå ëåáåëîâ] ***************************************************//

procedure InitializeWizard;

begin

  Enabled:= true;

  CreateWizardImg;

  CreateLabel;

  ButtonsTextures;

  NeedSpace;

  #ifdef Slides

  PicList:=tstringlist.Create;

  ExtractTemporaryFile('fon1.jpg');

  ExtractTemporaryFile('fon2.jpg');

  ExtractTemporaryFile('fon3.jpg');

  ExtractTemporaryFile('fon4.jpg');

  ExtractTemporaryFile('fon5.jpg');

  ExtractTemporaryFile('fon6.jpg');

  ExtractTemporaryFile('fon7.jpg');

  ExtractTemporaryFile('fon8.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon1.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon2.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon3.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon4.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon5.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon6.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon7.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon8.jpg');

  #endif

end;

#ifdef Slides

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);

begin

CurrentPicture:=CurrentPicture+1;

if CurrentPicture=piclist.count+1 then CurrentPicture:=1;

ShowImage(piclist.strings[CurrentPicture - 1]);

end;

#endif

procedure CurPageChanged(CurPageID: Integer);

begin

  SetStateNewButtons;

  WelcomeLabel1.Hide;

  WelcomeLabel2.Hide;

  BtnSetVisibility(hDirBrowseBtn, false);

  BtnSetVisibility(hGroupBrowseBtn, false);

  BtnSetVisibility(nic, false);

  ImgSetVisibility(edit, false);

  ImgSetVisibility(dir, false);

  ImgSetVisibility(group, false);

  ImgSetVisibility(work1, false);

  ImgSetVisibility(work2, false);

  ImgSetVisibility(work3, false);

  ImgSetVisibility(work4, false);

  ImgSetVisibility(work5, false);

  ImgSetVisibility(work6, false);

  ImgSetVisibility(work7, false);

  ImgSetVisibility(ready, false);

  #ifdef Components

  ImgSetVisibility(work8, false);

  #endif

  ImgSetVisibility(workerror, false);

  ImgSetVisibility(tasks, false);

  WizardForm.DirEdit.Hide;

  WizardForm.GroupEdit.Hide;

  dir1.Hide;

  FreeSpaceLabel.Hide;

  NeedSpaceLabel.Hide;

  niclabel.Hide;

  WizardForm.ComponentsList.Hide;

  BtnSetVisibility(IconsCheck, false);

  doplbl.Hide;

  IconsCheckLbl.Hide;

  WizardForm.TasksList.Hide;

  complbl.Hide;

  ready0.Hide;

  ready1.Hide;

  ready2.Hide;

  ready3.Hide;

  ready4.Hide;

  ready5.Hide;

  ready6.Hide;

  ready7.Hide;

  BtnSetVisibility(dpo, false);

  dpolbl.Hide;

  if CurPageID = wpWelcome then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon1.jpg'))

    #endif

    LogoForm.Hide;

    WelcomeLabel1.Show;

    WelcomeLabel2.Show;

    ImgSetVisibility(work1, true);

    CancelBtnClick1(0);

    ImgSetVisibility(img1, true);

   end;

  if CurPageID = wpSelectDir then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon2.jpg'))

    #endif

    BtnSetVisibility(hDirBrowseBtn, true);

    ImgSetVisibility(edit, true);

    ImgSetVisibility(dir, true);

    WizardForm.DirEdit.Show;

    FreeSpaceLabel.Show;

    NeedSpaceLabel.Show;

    dir1.Show;

    dir1.Caption:=  cm('dir1');

    dir1.Left:= ScaleX(220);

    dir1.Top:= ScaleX(343);

    ImgSetVisibility(work2, true);

    LogoForm.Hide;

    CancelBtnClick1(0);

    ImgSetVisibility(img2, true);

   end;

  if CurPageID = wpSelectComponents then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon3.jpg'))

    #endif

   #ifdef Components

    WizardForm.ComponentsList.Show;

    WizardForm.ComponentsList.DragMode;

    WizardForm.ComponentsList.Dragging;

    ImgSetVisibility(work3, true);

    complbl.Show;

    LogoForm.Hide;

    CancelBtnClick1(0);

   #endif

   end;

  if CurPageID = wpSelectProgramGroup then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon4.jpg'))

    #endif

    BtnSetVisibility(hGroupBrowseBtn, true);

    ImgSetVisibility(edit, true);

    WizardForm.GroupEdit.Show;

    ImgSetVisibility(group, true);

    dir1.Caption:=  cm('group1');

    dir1.Left:= ScaleX(220);

    dir1.Top:= ScaleX(343);

    dir1.Show;

    BtnSetVisibility(nic, true);

    niclabel.Show;

    #ifdef Components

    ImgSetVisibility(work4, true);

    #else

    ImgSetVisibility(work3, true);

    #endif

    LogoForm.Hide;

    CancelBtnClick1(0);

   end;

  if CurPageID = wpSelectTasks then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon5.jpg'))

    #endif

     BtnSetVisibility(IconsCheck, true);

     doplbl.Show;

     IconsCheckLbl.Show;

     #ifdef Components

     ImgSetVisibility(work5, true);

     #else

     ImgSetVisibility(work4, true);

     #endif

     ImgSetVisibility(tasks, true);

     BtnSetVisibility(dpo, true);

     dpolbl.Show;

     LogoForm.Hide;

     CancelBtnClick1(0);

   end;

  if CurPageID = wpReady then begin

     #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon6.jpg'))

    #endif

   #ifdef Components

   ImgSetVisibility(work6, true);

   #else

   ImgSetVisibility(work5, true);

   #endif

   ready0.Show;

   ready1.Show;

   ready2.Show;

   ready3.Show;

   if BtnGetChecked(IconsCheck) then begin ready5.Hide; ready4.Show end else begin ready4.Hide; ready5.Show; end;

   if BtnGetChecked(dpo) then begin ready7.Hide; ready6.Show end else begin ready6.Hide; ready7.Show; end;

   LogoForm.Hide;

   CancelBtnClick1(0);

   ImgSetVisibility(ready, true);

  end;

  if CurPageID = wpInstalling then

  begin

    #ifdef Slides

    CurrentPicture:=1;

    TimerID:=SetTimer(0, 0, 3000, WrapTimerProc(@OnTimer, 4)); //çàäåðæêà 3000 ìñ (3 ñåêóíäû)

    #endif

   #ifdef Components

   ImgSetVisibility(work7, true);

   #else

   ImgSetVisibility(work6, true);

   #endif

   LogoForm.Hide;

   CancelBtnClick1(0);

  end;

  if CurPageID = wpFinished then

  begin

      #ifdef Slides

      KillTimer(0, TimerID);

    ShowImage(ExpandConstant('{tmp}\fon8.jpg'))

    #endif

   #ifdef Components

   ImgSetVisibility(work8, true);

   #else

   ImgSetVisibility(work7, true);

   #endif

    WelcomeLabel1.Caption:= cm('Fin1');

    WelcomeLabel2.Caption:= cm('Fin2');

    WelcomeLabel2.Top:= WelcomeLabel2.Top-ScaleY(23);

    WelcomeLabel1.Show;

    WelcomeLabel2.Show;

    i.Hide;

    LogoForm.Hide;

    CancelBtnClick1(0);

  end;

  if (CurPageID = wpFinished) and Error then

  begin

  WelcomeLabel1.Caption:= cm('Error1');

  WelcomeLabel2.Caption:= cm('Error2')

  ImgSetVisibility(workerror, true);

  LogoForm.Hide;

  CancelBtnClick1(0);

  end;

  ImgApplyChanges(WizardForm.Handle);

end;

procedure DeinitializeSetup;

begin

  if Enabled then gdipShutdown;

#ifdef Slides

DeinitializeSlideShow;

KillTimer(0, TimerID);

#endif

end;

скрипт.rar

Edited by Fenixx

Share this post


Link to post

Short link
Share on other sites

@Fenixx, скрипт лучше скидывать в полном комплекте всего, что необходимо для компиляции (кроме самих модов), а то не очень весело по кускам собирать.

Share this post


Link to post

Short link
Share on other sites

'Код'

#define MyAppName "mod"

#define NeedSize 6100

#define NeedMem 512

///ñ êîìïîíåíòàìè è áåç

#define Components

////ñ ñëàéäàìè èëè ïðîñòî ñ êàðòèíêîé

;#define Slides

#define Image

/////////////////////////////////////

[setup]

AppName={#MyAppName}

AppVersion=2.0

AppPublisher=avtor

DefaultDirName={pf}\{#MyAppName}

DefaultGroupName={#MyAppName}

OutputBaseFilename=setup

Compression=lzma2/ultra64

SolidCompression=true

[Languages]

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

//Name: eng; MessagesFile: compiler:Languages\English.isl

[Files]

Source: "MODS\PRICEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\P;

Source: "MODS\DAMAGEPANEL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\DP;

//=== çâîíîê êðèòà ===///=== ñòàâèòü âíà÷àëå êîìàíäó êîïèðîâàíèå ôàéëîâ, à óæå ïîòîì óñòàíîâêó ìîäà ===\\

Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\0.8.6\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: KMP\ZK;

Source: "MODS\ZVONOK\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\ZK;

Source: "MODS\ZOOM\COMANDOR\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z;

Source: "MODS\ZOOM\NOSCROLL\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z\NS;

Source: "MODS\ZOOM\ZOOM4X\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\Z\ZX4;

Source: "MODS\TREE\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\T;

Source: "MODS\INFO\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\I;

Source: "MODS\COLORMESENGER\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\CM;

Source: "MODS\CLOCK\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\CLOCK;

Source: "MODS\ANGAR\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\A;

Source: "MODS\XVM\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\XVM;

Source: dll\b2p.dll; Flags: dontcopy

Source: dll\botva2.dll; Flags: dontcopy

Source: dll\gdiplus.dll; Flags: dontcopy

Source: dll\isSlideShow.dll; Flags: dontcopy

Source: dll\InnoCallback.dll; Flags: dontcopy

#ifdef Slides

Source: SlidesFiles\*; Flags: dontcopy

#endif

#ifdef Image

Source: Files\fonAC.jpg; Flags: dontcopy

#endif

Source: Files\about.png; Flags: dontcopy

Source: Files\aboutlog.png; Flags: dontcopy

Source: Files\Button.png; Flags: dontcopy

Source: Files\cb.png; Flags: dontcopy

Source: Files\dir.png; Flags: dontcopy

Source: Files\edit.png; Flags: dontcopy

Source: Files\exit.png; Flags: dontcopy

Source: Files\group.png; Flags: dontcopy

Source: Files\min.png; Flags: dontcopy

Source: Files\pb.png; Flags: dontcopy

Source: Files\pb1.png; Flags: dontcopy

Source: Files\tasks.png; Flags: dontcopy

Source: Files\t&c.bmp; Flags: dontcopy

Source: Files\ready.png; Flags: dontcopy

#ifdef Components

Source: Files\work1.jpg; Flags: dontcopy

Source: Files\work2.jpg; Flags: dontcopy

Source: Files\work3.jpg; Flags: dontcopy

Source: Files\work4.jpg; Flags: dontcopy

Source: Files\work5.jpg; Flags: dontcopy

Source: Files\work6.jpg; Flags: dontcopy

Source: Files\work7.jpg; Flags: dontcopy

Source: Files\work8.jpg; Flags: dontcopy

Source: Files\workerror.jpg; Flags: dontcopy

#else

Source: Files\2work1.jpg; Flags: dontcopy

Source: Files\2work2.jpg; Flags: dontcopy

Source: Files\2work3.jpg; Flags: dontcopy

Source: Files\2work4.jpg; Flags: dontcopy

Source: Files\2work5.jpg; Flags: dontcopy

Source: Files\2work6.jpg; Flags: dontcopy

Source: Files\2work7.jpg; Flags: dontcopy

Source: Files\2workerror.jpg; Flags: dontcopy

#endif

[CustomMessages]

rus.Welcome1=Âàñ ïðèâåòñòâóåò Ìàñòåð óñòàíîâêè èãðû %n«{#MyAppName}»

rus.Welcome2=Ðåêîìåíäóåòñÿ çàêðûòü àíòèâèðóñíûå ïðîãðàììû, à òàêæå âñå ïðî÷èå ïðèëîæåíèÿ ïåðåä òåì, êàê ïðîäîëæèòü.%n%nÍàæìèòå «Äàëåå», ÷òîáû ïðîäîëæèòü, èëè  «Îòìåíà», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.

rus.Dir1=Ïðîãðàììà óñòàíîâèò «{#MyAppName}» â ñëåäóþùóþ ïàïêó.

rus.Dir2=Íàæìèòå «Äàëåå», ÷òîáû ïðîäîëæèòü. Åñëè Âû õîòèòå âûáðàòü äðóãóþ ïàïêó, íàæìèòå «Îáçîð».

rus.Group1=Ïðîãðàììà ñîçäàñò ÿðëûêè â ñëåäóþùåé ïàïêå ìåíþ «Ïóñê».

rus.FreeSpace=Äîñòóïíî ìåñòà íà äèñêå:.....

rus.NeedSpace=Òðåáóåòñÿ ìåñòà äëÿ óñòàíîâêè:.....

rus.AfterInstallSpace=Ïîñëå óñòàíîâêè èãðà çàéìåò:.....

rus.nic=Íå ñîçäàâàòü ïàïêó â ìåíþ «Ïóñê»

rus.Comp=Âûáåðèòå êîìïîíåíòû, êîòîðûå Âû õîòèòå óñòàíîâèòü; %nñíèìèòå ôëàæêè ñ êîìïîíåíòîâ, óñòàíàâëèâàòü êîòîðûå íå òðåáóåòñÿ. %nÍàæìèòå «Äàëåå», êîãäà Âû áóäåòå ãîòîâû ïðîäîëæèòü.

rus.dop=Âûáåðèòå äîïîëíèòåëüíûå çàäà÷è, êîòîðûå íåîáõîäèìî âûïîëíèòü

rus.ic=Äîáàâèòü ÿðëûê íà ðàáî÷èé ñòîë

rus.Fin1=Óñòàíîâêà èãðû «{#MyAppName}» %nóñïåøíî çàâåðøåíà

rus.Fin2=%n%nÄëÿ åå çàïóñêà âûáåðèòå ñîîòâåòñòâóþùèé ÿðëûê â ìåíþ "Ïóñê" %nèëè íà Ðàáî÷åì ñòîëå. %n%nÍàæìèòå "Çàâåðøèòü", ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.

rus.ExtractedFile=Èçâëåêàåòñÿ ôàéë:

rus.Extracted=Óñòàíîâêà...

rus.Error=Îøèáêà ðàñïàêîâêè!

rus.ElapsedTime=Ïðîøëî:

rus.RemainingTime=Îñòàëîñü âðåìåíè:

rus.rbc=Îòêàò óñòàíîâêè...

rus.p=Ïðîãðåññ:

rus.exit=Âûõîä

rus.Error1=Óñòàíîâêà èãðû «{#MyAppName}» íå çàâåðøåíà.

rus.Error2=%nÂî âðåìÿ óñòàíîâêè ïðîèçîøëà îøèáêà, ïîæàëóéñòà îòêëþ÷èòå ñòîðîííèå ïðîãðàììû è ïîâòîðèòå ïîïûòêó óñòàíîâêè. %n%nÍàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.

rus.DX=Îáíîâèòü DirectX

rus.VC=Óñòàíîâèòü Microsoft Visual C++

rus.ready1=Ïðîãðàììà óñòàíîâêè ãîòîâà íà÷àòü óñòàíîâêó «{#MyAppName}» íà Âàø êîìïüþòåð.

rus.ready2=Èíôîðìàöèÿ:

rus.ready3=Èãðà áóäåò óñòàíîâëåíà â

rus.ready4=Ïàïêà â ìåíþ ïóñê

rus.ready5=Áóäåò ñîçäàí ÿðëûê íà ðàáî÷åì ñòîëå

rus.ready6=ßðëûê íà ðàáî÷åì ñòîëå ñîçäàí íå áóäåò

rus.doppo=Óñòàíîâèòü äîïîëíèòåëüíîå ïðîãðàììíîå îáåñïå÷åíèå

rus.ready7=Áóäåò óñòàíîâëåíî äîïîëíèòåëüíîå ïðîãðàììíîå îáåñïå÷åíèå

rus.ready8=Äîïîëíèòåëüíîå ïðîãðàììíîå îáåñïå÷åíèå óñòàíîâëåíî íå áóäåò

[icons]

Name: {userdesktop}\{#MyAppName}; Filename: {app}\Data\Engine\KapowMulti.exe; WorkingDir: {app}; IconFilename: {app}\Data\Engine\KapowMulti.exe; Check: CheckError and IconsChecks

Name: {group}\{cm:UninstallProgram}; Filename: {uninstallexe}; Check: CheckError

[Run]

Filename: {src}\Redist\dxwebsetup.exe; WorkingDir: {src}\Redist\; Flags: waituntilterminated; Check: CheckError and DpoChecks

Filename: {src}\Redist\vcredist_x86.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: not IsWin64 and CheckError and DpoChecks

Filename: {src}\Redist\vcredist_x64.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: IsWin64 and CheckError and DpoChecks

[Tasks]

Name: VCCheck; Description: Óñòàíîâèòü Microsoft Visual C++ 2005 Redist

#ifdef Components

[Types]

Name: custom; Description: Full installation; Flags: iscustom

[Components]

Name: KMP; Description: KPAH Mod Pack; Types: custom; Flags: fixed

Name: KMP\P; Description: 1. Ïðèöåë.; Flags: disablenouninstallwarning

Name: KMP\DP; Description: 2. Äàìàã ïàíåëü.; Flags: disablenouninstallwarning

Name: KMP\ZK; Description: 2. Çâóêîâîé ìîä çâîíîê ïðè êðèòå ìîäóëÿ.; Flags: disablenouninstallwarning

Name: KMP\Z; Description: 3. Zoom.; Flags: disablenouninstallwarning

Name: KMP\Z\NS; Description: à. NoScroll- êîë¸ñèêî íå ïåðåêëþ÷àåò â ñíàéïåðñêèé ðåæèì; Flags: checkablealone ;

Name: KMP\Z\ZX4; Description: á. 4-õ ïîçèöèîííûé ñíàéïåðñêèé ïðèöåë ; Flags: checkablealone ;

Name: KMP\T; Description: 4. Äåðåâî ðàçâèòèÿ.;

Name: KMP\I; Description: 5. Èíôîðìàöèîííàÿ ïàíåëü âûáðàííîé öåëè.;

Name: KMP\CM; Description: 6. Öâåòíûå ñîîáùåíèÿ(ßñåíÊðàñåí).;

Name: KMP\CLOCK; Description: 7. ×àñû â àíãàðå.;

Name: KMP\A; Description: 8. Àíãàð.;

Name: KMP\XVM; Description: 9. Ïîëüçîìåð(Îëåíåìåð).;

#endif

[uninstallDelete]

Type: filesandordirs; Name: {app}

const  PCFonFLY = true;  notPCFonFLY = false;  VK_ESCAPE = 27;varimg1, img2: longint;  Cancel: Integer;  Error: Boolean;  PCFVer: Double;  edit, dir, group, work1, work2, work3, work4, work5, work6, work7, work8, workerror, tasks, ready: Longint;  hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, Min, CloseBtn, nic, IconsCheck, CancelBtn, MinBtn, AboutBtn, dpo: HWND;  WFButtonFont: TFont;  UpdBtn, UpdTasks: TTimer;  WelcomeLabel1, MainLabel, WelcomeLabel2, dir1, IconsCheckLbl,  NeedSpaceLabel, Dir1Label, FreeSpaceLabel, niclabel, doplbl, Pct, CurrFileName, Time1, Time2, i, dxlbl, vclbl, complbl, ready0, ready1, ready2, ready3, ready4, ready5, ready6, ready7, ready8, ready9, dpolbl: TLabel;  FreeMB, TotalMB: Cardinal;  SizeInt: Longint;  Enabled: Boolean;  LogoForm: TForm; closebnt: HWND;    TimerID: LongWord;  CurrentPicture:integer;  PicList: TStringlist;  imgpanel: tpanel;#include "AddIss\botva2.iss"#include "AddIss\progressbar.iss"var pb: TImgPB;function ReleaseCapture: Longint; external '[email protected] stdcall';///type  TCallback = function (OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;type  TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);function GetKeyState(nVirtKey: Integer): ShortInt; external 'GetKeyState@user32 stdcall delayload';///#ifdef Slidesfunction WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external '[email protected] stdcall';function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external '[email protected] stdcall';function GetSystemMetrics(nIndex:Integer):Integer; external '[email protected] stdcall';procedure InitializeSlideShow(Hwnd:Thandle; l,t,w,h:integer;Animate:boolean; Stretch:integer); external 'InitializeSlideShow@files:isslideshow.dll stdcall';procedure DeinitializeSlideShow; external 'DeinitializeSlideShow@files:isslideshow.dll stdcall';procedure ShowImage_(file_: PAnsiChar; effect_: longint); external 'ShowImage@files:isslideshow.dll stdcall';#endif////procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  ReleaseCapture;  SendMessage(WizardForm.Handle,$0112,$F012,0)end;function ProgressCallback(OveralPct, CurrentPct: Integer; CurrentFile, TimeStr1, TimeStr2, TimeStr3: PAnsiChar): longword;begin  if (GetKeyState(VK_ESCAPE) < 0) then begin if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1; end;  if OveralPct<=1000 then ImgPBSetPosition(pb, OveralPct);  Pct.Caption := ExpandConstant('{cm:p} ')+IntToStr(OveralPct div 10)+'.'+chr(48 + OveralPct mod 10)+'%';  CurrFileName.Caption:=ExpandConstant('{cm:ExtractedFile} ')+MinimizePathName(CurrentFile, CurrFileName.Font, CurrFileName.Width-ScaleX(100));  Time1.Caption:=ExpandConstant('{cm:ElapsedTime} ')+TimeStr2;  Time2.Caption:=ExpandConstant('{cm:RemainingTime} ')+TimeStr1;  Result := Cancel;end;function IconsChecks: Boolean;begin  Result:= BtnGetChecked(IconsCheck);end;function DpoChecks: Boolean;begin  Result:= BtnGetChecked(dpo);end;procedure CancelButtonOnClick(h: HWND);begin  SuspendProc;  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:= 1;  ResumeProc;end;function cm(s: PAnsiChar): String;begin  Result:= ExpandConstant('{cm:'+s+'}');end;#ifdef Slidesprocedure ShowImage(file: string);begin  if Pos(ExpandConstant('{tmp}\'), File)>0 then StringChange(File, ExpandConstant('{tmp}\'), '');  if Pos('{tmp}\', File)>0 then StringChange(File, '{tmp}\', '');  ExtractTemporaryFile(file);  ShowImage_(ExpandConstant('{tmp}\'+File), 1);  DeleteFile(ExpandConstant('{tmp}\'+File));end;#endifprocedure HideControls;begin  Pct.Hide; i.Hide; CurrFileName.Hide; Time1.Hide; Time2.Hide; ImgPBDelete(pb);  if Error then begin i.Show; i.Caption:= cm('rbc'); end;end;procedure CreateControls;begin  Pct := TLabel.Create(WizardForm);  with Pct do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Left:= ScaleX(55);    Top:= ScaleY(420);    Width:= ScaleX(180);    Transparent:= true;    BringToFront;  end;  CurrFileName := TLabel.Create(WizardForm);  with CurrFileName do begin    Parent:= WizardForm;    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    AutoSize:= false;    Width:= ScaleX(300);    Left:= ScaleX(55);    Top:= ScaleY(375);    Transparent:= true;  end;  Time1 := TLabel.Create(WizardForm);  with Time1 do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Width:= ScaleX(200);    Left:= ScaleX(55);    Top:= ScaleY(390);    Transparent:= true;  end;  Time2 := TLabel.Create(WizardForm);  with Time2 do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Width:= Time1.Width+ScaleX(40);    Left:= ScaleX(55);    Top:= Time1.Top+ScaleY(15);    Transparent:= true;  end;  i := TLabel.Create(WizardForm);  with i do begin    AutoSize:= false;    WordWrap:= true;    Font.Name:= 'Arial';    Font.Size:= 8    Font.Style := [fsBold];    Transparent:= true;    Font.Color:= $363636;    Parent:= WizardForm;    AutoSize:= false;    Width:= Time1.Width+ScaleX(40);    Left:= ScaleX(55);    Top:= ScaleY(360);    Transparent:= true;    Caption:= cm('Extracted');  end;end;function CheckError: Boolean;begin  Result:= not Error;end;///procedure FrameMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  WizardForm.SetFocus;  ReleaseCapture;  SendMessage(WizardForm.Handle,$0112,$F012,0);end;function InitializeSetup:boolean;begin  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');  if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');  if not FileExists(ExpandConstant('{tmp}\gdiplus.dll')) then ExtractTemporaryFile('gdiplus.dll');  Result:=True;end;//************************************************ [Íà÷àëî - Çàãðóçêà èçîáðàæåíèé è ïîäãîòîâêà âèçàðäà] ***************************************************//procedure CreateWizardImg;beginwith WizardForm do beginBorderStyle := bsNone;ClientWidth:=ScaleX(733);ClientHeight:=ScaleY(506);InnerNotebook.Hide;OuterNotebook.Hide;Bevel.Hide;Center;Color:= $191919;end;  #ifdef Slides  imgPanel := TPanel.Create(WizardForm);  imgPanel.Top := ScaleY(73);  imgPanel.Left := ScaleX(19);  imgPanel.Width := ScaleX(695);  imgPanel.Height := ScaleY(225);  imgPanel.BevelOuter := bvNone;  imgPanel.Parent := WizardForm;  InitializeSlideShow(imgPanel.Handle, ScaleX(0), ScaleY(0), ScaleX(695), ScaleY(225), true, 8);  #endif  #ifdef Components  work1:= ImgLoad(WizardForm.handle, ExpandConstant('work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work2:= ImgLoad(WizardForm.handle, ExpandConstant('work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work3:= ImgLoad(WizardForm.handle, ExpandConstant('work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work4:= ImgLoad(WizardForm.handle, ExpandConstant('work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work5:= ImgLoad(WizardForm.handle, ExpandConstant('work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work6:= ImgLoad(WizardForm.handle, ExpandConstant('work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work7:= ImgLoad(WizardForm.handle, ExpandConstant('work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work8:= ImgLoad(WizardForm.handle, ExpandConstant('work8.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  workerror:= ImgLoad(WizardForm.handle, ExpandConstant('workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  #else  work1:= ImgLoad(WizardForm.handle, ExpandConstant('2work1.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work2:= ImgLoad(WizardForm.handle, ExpandConstant('2work2.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work3:= ImgLoad(WizardForm.handle, ExpandConstant('2work3.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work4:= ImgLoad(WizardForm.handle, ExpandConstant('2work4.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work5:= ImgLoad(WizardForm.handle, ExpandConstant('2work5.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work6:= ImgLoad(WizardForm.handle, ExpandConstant('2work6.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  work7:= ImgLoad(WizardForm.handle, ExpandConstant('2work7.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  workerror:= ImgLoad(WizardForm.handle, ExpandConstant('2workerror.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  #endif  #ifdef Image  ImgLoad(WizardForm.handle, ExpandConstant('fonAC.jpg'), ScaleX(19), ScaleY(73), ScaleX(695), ScaleY(225), True, True);  #endif  edit:= ImgLoad(WizardForm.handle, ExpandConstant('edit.png'), ScaleX(145), ScaleY(380), ScaleX(328), ScaleY(24), True, True);  ready:= ImgLoad(WizardForm.handle, ExpandConstant('ready.png'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);  dir:= ImgLoad(WizardForm.handle, ExpandConstant('dir.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);  group:= ImgLoad(WizardForm.handle, ExpandConstant('group.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);  tasks:= ImgLoad(WizardForm.handle, ExpandConstant('tasks.png'), ScaleX(143), ScaleY(327), ScaleX(65), ScaleY(48), True, True);  ImgApplyChanges(WizardForm.Handle);end;//************************************************ [Êîíåö - Çàãðóçêà èçîáðàæåíèé è ïîäãîòîâêà âèçàðäà] ***************************************************////************************************************ [Íà÷àëî - Òåêñòóðû êíîïîê] ***************************************************//procedure SetStateNewButtons;begin  with WizardForm.BackButton do begin    BtnSetText(hBackBtn,PAnsiChar(Caption));    BtnSetVisibility(hBackBtn,Visible);    BtnSetEnabled(hBackBtn,Enabled);    BtnRefresh(hBackBtn);  end;  with WizardForm.NextButton do begin    BtnSetText(hNextBtn,PAnsiChar(Caption));    BtnSetVisibility(hNextBtn,Visible);    BtnSetEnabled(hNextBtn,Enabled);    BtnRefresh(hNextBtn);  end;  with WizardForm.CancelButton do begin    BtnSetText(hCancelBtn, PAnsiChar(cm('exit')));    BtnSetVisibility(hCancelBtn,Visible);    BtnSetEnabled(hCancelBtn,Enabled);    BtnRefresh(hCancelBtn);  end;  BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));  BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));end;procedure TimerRefreshBtn(S: TObject);begin  BtnRefresh(hBackBtn);  BtnRefresh(hNextBtn);  BtnRefresh(hCancelBtn);  BtnRefresh(hDirBrowseBtn);  BtnRefresh(hGroupBrowseBtn);  if BtnGetChecked(nic) then ready3.Caption:= cm('ready4') + ': ' + '-- --' else ready3.Caption:= cm('ready4') + ': ' + WizardForm.GroupEdit.Text;end;procedure WizardFormBtnClick(hBtn: HWND);var  Btn:TButton;begin  case hBtn of    hCancelBtn: Btn:=WizardForm.CancelButton;    hNextBtn: Btn:=WizardForm.NextButton;    hBackBtn: Btn:=WizardForm.BackButton;    hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;    hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;  end;  Btn.OnClick(Btn);  SetStateNewButtons;  BtnRefresh(hBtn);end;procedure MinimizeBtnClick(h: HWND);begin  WizardForm.SetFocus;  ReleaseCapture;  SendMessage(WizardForm.Handle,$112,61472,0);end;procedure CancelBtnClick(h: HWND);begin  WizardForm.CancelButton.OnClick(WizardForm.CancelButton);end;procedure CancelBtnClick1(h: HWND);begin  LogoForm.Hide;  BtnSetEnabled(AboutBtn, not LogoForm.Visible);end;procedure NoIconsClick(hBtn: HWND);var  Check:boolean;begin  Check:= BtnGetChecked(hBtn);  BtnSetEnabled(hGroupBrowseBtn, not Check);  WizardForm.GroupEdit.Enabled:= not Check;  WizardForm.NoIconsCheck.Checked:= Check;  WizardForm.GroupEdit.Color:= $ffffff;end;procedure DpoOnClick(hBtn: TObject);begin  BtnSetChecked(dpo, not BtnGetChecked(dpo));  if BtnGetChecked(dpo) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;end;procedure DpoOnClick1(hBtn: HWND);begin  if BtnGetChecked(hBtn) then dpolbl.Font.Color:= $363636 else dpolbl.Font.Color:= clgray;end;procedure AboutClick(hBtn: HWND);var ok: HWND;begin  closebnt:= BtnCreate(LogoForm.Handle, ScaleX(473 - 20), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);  BtnSetEvent(closebnt, BtnClickEventID,WrapBtnCallback(@CancelBtnClick1, 1));  ok:=BtnCreate(LogoForm.Handle, ScaleX(373), ScaleY(403), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(ok,BtnClickEventID,WrapBtnCallback(@CancelBtnClick1,1));  BtnSetFont(ok,WFButtonFont.Handle);  BtnSetFontColor(ok, $363636, $363636, $363636, clgray);  BtnSetText(ok,'OK');  ImgLoad(LogoForm.Handle, 'aboutlog.png', 0, 0, ScaleX(473), ScaleY(440), true, true);  LogoForm.Show;  BtnSetEnabled(AboutBtn, not LogoForm.Visible);  ImgApplyChanges(LogoForm.Handle);end;procedure IconsClick(hBtn: HWND);var Check: Boolean;begin  if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;end;procedure nicOnClick(Sender: TObject);begin  BtnSetChecked(nic, not BtnGetChecked(nic));  NoIconsClick(nic);end;procedure IconsOnClick(Sender: TObject);begin  BtnSetChecked(IconsCheck, not BtnGetChecked(IconsCheck));  if BtnGetChecked(IconsCheck) then IconsCheckLbl.Font.Color:= $363636 else IconsCheckLbl.Font.Color:= clgray;end;procedure ButtonsTextures;begin  WFButtonFont:=TFont.Create;  WFButtonFont.Name:= 'Tahoma';  WFButtonFont.Size:= 9;  WFButtonFont.Color:= $363636;with WizardForm.NextButton do begin  hNextBtn:=BtnCreate(WizardForm.Handle, ScaleX(500), ScaleY(470), ScaleX(93), ScaleY(33), 'button.png', 5, False);  BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hNextBtn,WFButtonFont.Handle);  BtnSetFontColor(hNextBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;with WizardForm.BackButton do begin  hBackBtn:=BtnCreate(WizardForm.Handle, ScaleX(400), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hBackBtn,WFButtonFont.Handle);  BtnSetFontColor(hBackBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;with WizardForm.CancelButton do begin  hCancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(620), ScaleY(470), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hCancelBtn,WFButtonFont.Handle);  BtnSetFontColor(hCancelBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;  CancelBtn:=BtnCreate(WizardForm.Handle, ScaleX(717), ScaleY(0), ScaleX(11), ScaleY(33), ExpandConstant('exit.png'), 1, False);  BtnSetEvent(CancelBtn, BtnClickEventID,WrapBtnCallback(@CancelBtnClick,1));  BtnSetFont(CancelBtn, WFButtonFont.Handle);  BtnSetText(CancelBtn,'');  MinBtn:=BtnCreate(WizardForm.Handle, ScaleX(704), ScaleY(4), ScaleX(8), ScaleY(33), ExpandConstant('min.png'), 1, false);  BtnSetEvent(MinBtn, BtnClickEventID,WrapBtnCallback(@MinimizeBtnClick,1));  AboutBtn:=BtnCreate(WizardForm.Handle, ScaleX(20), ScaleY(470), ScaleX(29), ScaleY(35), ExpandConstant('about.png'), 5, false);  BtnSetChecked(AboutBtn, true);  BtnSetEvent(AboutBtn, BtnClickEventID,WrapBtnCallback(@AboutClick,1));with WizardForm.DirBrowseButton do begin  hDirBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);  BtnSetFontColor(hDirBrowseBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;with WizardForm.GroupBrowseButton do begin  hGroupBrowseBtn:=BtnCreate(WizardForm.Handle, ScaleX(502), ScaleY(375), ScaleX(93), ScaleY(33), ExpandConstant('button.png'), 1, False);  BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));  BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);  BtnSetFontColor(hGroupBrowseBtn, $363636, $363636, $363636, $363636);  Width:=0;  Height:=0;end;  nic:=BtnCreate(WizardForm.Handle, ScaleX(140),ScaleY(405), ScaleX(30),ScaleY(30), ExpandConstant('cb.png'), 1, true);  BtnSetChecked(nic, false);  BtnSetEvent(nic,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));  IconsCheck:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(380), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);  BtnSetChecked(IconsCheck, true);  BtnSetEvent(IconsCheck, BtnClickEventID, WrapBtnCallback(@IconsClick, 1));  dpo:=BtnCreate(WizardForm.Handle, ScaleX(200), ScaleY(410), ScaleX(30), ScaleY(30), ExpandConstant('cb.png'), 1, true);  BtnSetChecked(dpo, true);  BtnSetEvent(dpo, BtnClickEventID, WrapBtnCallback(@DpoOnClick1, 1));end;//************************************************ [Êîíåö - Òåêñòóðû êíîïîê] ***************************************************////************************************************[Íà÷àëî - Ïðîâåðêà ìåñòà íà äèñêå]*************************************************************//Function NumToStr(Float: Extended): String;Begin  Result:= Format('%.2n', [Float]); StringChange(Result, ',', ',');  while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = ',')) and (Pos(',', Result) > 0) do  SetLength(Result, Length(Result)-1);End;function CompareNum(FirstNum, SecondNum: Integer): Boolean;beginif FirstNum < SecondNum then Result:= False else Result:= True;end;Function MbOrTb(Byte: Extended): AnsiString;beginif Byte < 1024 then Result:= NumToStr(Byte) + ' MB' else  if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' GB' else     Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' TB'end;procedure GetFreeSpaceCaption(Sender: TObject);var  Path: AnsiString; gsod: Boolean;begin  Path := ExtractFileDrive(WizardForm.DirEdit.Text);  gsod:= GetSpaceOnDisk(Path, True, FreeMB, TotalMB);  if gsod then begin    FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTB(FreeMb) + ' (' + IntToStr((FreeMb*100) div TotalMB) + ' %)';    NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt);    BtnSetEnabled(hNextBtn, true);    WizardForm.NextButton.Enabled:= true;  end else  if not gsod then begin    FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} 0 MB');    NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt)    BtnSetEnabled(hNextBtn, false);    WizardForm.NextButton.Enabled:= false;    Exit;  end;  ready2.Caption:=ready2.Caption + ': ' + WizardForm.DirEdit.Text;end;procedure NeedSpace;beginSizeInt:= {#NeedSize}FreeSpaceLabel := TLabel.Create(WizardForm);FreeSpaceLabel.SetBounds(ScaleX(145), ScaleY(410), ScaleX(209), ScaleY(13))FreeSpaceLabel.Parent := WizardForm;FreeSpaceLabel.Font.Name:='Arial';FreeSpaceLabel.Font.Size:= 8;FreeSpaceLabel.Font.Color:= $363636;FreeSpaceLabel.Transparent:=true;FreeSpaceLabel.Font.Style := [fsBold];NeedSpaceLabel := TLabel.Create(WizardForm);NeedSpaceLabel.SetBounds(ScaleX(145), ScaleY(430), ScaleX(209), ScaleY(13))NeedSpaceLabel.Parent := WizardForm;NeedSpaceLabel.Font.Name:='Arial';NeedSpaceLabel.Font.Size:= 8;NeedSpaceLabel.Font.Color:= $363636;NeedSpaceLabel.Transparent:=true;NeedSpaceLabel.Font.Style:= [fsBold];WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;end;//************************************************[Êîíåö - Ïðîâåðêà ìåñòà íà äèñêå]*************************************************************////************************************************ [Íà÷àëî - Ñîçäàíèå ëåáåëîâ] ***************************************************//procedure CreateLabel;begin//Áåç ýòîãî êíîïêè íîðìàëüíî íå ïåðåðèñîâûâàþòñÿ, åñëè çàïóñòèòü ñåòàï è ïðè ýòîì íàâåñòè êóðñîð íà êíîïêó.  UpdBtn:= TTimer.Create(nil);  UpdBtn.Interval:= 1;  UpdBtn.OnTimer:= @TimerRefreshBtn;///////////////////////////////////////////////////////////////////////////////////////////////////////////MainLabel:= TLabel.Create(WizardForm);with MainLabel dobegin  Left:= ScaleX(0);  Top:= ScaleY(7);  Width:= ScaleX(752);  Height:= ScaleY(34);  AutoSize:= false;  Transparent:= true;  WordWrap:= true;  Font.Name:='Corbel';  Alignment:= taCenter;  Font.Size:= 10;  Font.Color:= $aeacac;  Font.Style := [fsBold];  Parent:= WizardForm;  OnMouseDown:=@LabelOnMouseDown;  Caption:= WizardForm.Caption;end;//WelcomeWelcomeLabel1:= TLabel.Create(WizardForm);with WelcomeLabel1 dobegin  Left:= ScaleX(140);  Top:= ScaleY(330);  Width:= ScaleX(450);  Height:= ScaleY(65);  AutoSize:= false;  Transparent:= true;  WordWrap:= true;  Font.Name:='Arial';  Font.Size:= 10;  Font.Color:=$363636;  Font.Style := [fsBold];  Alignment := taCenter;  Parent:= WizardForm;  Caption:= cm('Welcome1');end;WelcomeLabel2:=TLabel.Create(WizardForm);with WelcomeLabel2 dobegin  Left:= ScaleX(140);  Top:= ScaleY(370);;  Width:= ScaleX(450);  Height:= ScaleY(200);  AutoSize:= false;  WordWrap:= true;  Font.Name:='Arial';  Font.Size:= 9;  Font.Color:=$363636;  Alignment := taCenter;  Font.Style := [fsBold];  Transparent:= true;  Parent:= WizardForm;  Caption:= cm('Welcome2');end;//SelectDirwith WizardForm.DirEdit do begin  Parent:= WizardForm;  Left:= ScaleX(148);  Top:= ScaleY(384);  BorderStyle:= bsNone;

  Color:= $ffffff;

  Font.Name:= 'Arial';

  Font.Size:= 9;

  Font.Color:= $363636;

  Width:= ScaleX(324);

  Height:= ScaleY(18);

  end;

with WizardForm.GroupEdit do begin

  Parent:= WizardForm;

  Left:= ScaleX(148);

  Top:= ScaleY(384);

  BorderStyle:= bsNone;

  Color:= $ffffff;

  Font.Name:= 'Arial';

  Font.Size:= 9;

  Font.Color:= $363636;

  Width:= ScaleX(324);

  Height:= ScaleY(18);

  end;

dir1:=TLabel.Create(WizardForm);

with dir1 do

begin

  Left:= ScaleX(300);

  Top:= ScaleY(480);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:= $363636;

  Parent:= WizardForm;

  Caption:= cm('dir1');

end;

/////////////////////////

niclabel:=TLabel.Create(WizardForm);

with niclabel do

begin

  Left:= ScaleX(170);

  Top:= ScaleY(412);

  Width:= ScaleX(250);

  Height:= ScaleY(16);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('nic');

  OnClick:= @nicOnClick;

end;

/////////////////////////////////

ExtractTemporaryFile('t&c.bmp');

with WizardForm.ComponentsList do begin

  Left:= ScaleX(435);

  Top:= ScaleY(330);

  Width:= ScaleX(275);

  Height:= ScaleY(110);

  Color:= WizardForm.Color;

  Font.Color:= $363636;

  Font.Style:= [fsBold];

  Font.Size:= 8;

  Font.Name:= 'Arial'

  BorderStyle:= bsSingle;

  Font.Color:= $363636;

  LoadBGBmpFromFile(ExpandConstant('{tmp}\t&c.bmp'), 0, 0);

  Parent:= WizardForm;

end;

complbl:=TLabel.Create(WizardForm);

with complbl do

begin

  Left:= ScaleX(20);

  Top:= ScaleY(363);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 9;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('comp');

end;

///////////////////////////////

doplbl:=TLabel.Create(WizardForm);

with doplbl do

begin

  Left:= ScaleX(215);

  Top:= ScaleY(348);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('dop');

end;

IconsCheckLbl:=TLabel.Create(WizardForm);

with IconsCheckLbl do

begin

  Left:= ScaleX(230);

  Top:= ScaleY(387);

  Width:= ScaleX(250);

  Height:= ScaleY(16);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ic');

  OnClick:= @IconsOnClick;

end;

//////////////////////////////////

DeleteFile(ExpandConstant('{tmp}\t&c.bmp'));

ready0:=TLabel.Create(WizardForm);

with ready0 do

begin

  Left:= ScaleX(140);

  Top:= ScaleY(340);

  Width:= ScaleX(470);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready1')

end;

ready1:=TLabel.Create(WizardForm);

with ready1 do

begin

  Left:= ScaleX(143);

  Top:= ScaleY(370);

  Width:= ScaleX(550);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready2')

end;

ready2:=TLabel.Create(WizardForm);

with ready2 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(385);

  Width:= ScaleX(460);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready3');

end;

ready3:=TLabel.Create(WizardForm);

with ready3 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(400);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready4');

end;

ready4:=TLabel.Create(WizardForm);

with ready4 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(415);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready5');

end;

ready5:=TLabel.Create(WizardForm);

with ready5 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(415);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready6');

end;

dpolbl:=TLabel.Create(WizardForm);

with dpolbl do

begin

  Left:= ScaleX(230);

  Top:= ScaleY(423);

  Width:= ScaleX(350);

  Height:= ScaleY(16);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('doppo');

  OnClick:= @DpoOnClick;

end;

ready6:=TLabel.Create(WizardForm);

with ready6 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(430);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready7');

end;

ready7:=TLabel.Create(WizardForm);

with ready7 do

begin

  Left:= ScaleX(160);

  Top:= ScaleY(430);

  Width:= ScaleX(450);

  Height:= ScaleY(200);

  AutoSize:= false;

  WordWrap:= true;

  Font.Name:= 'Arial';

  Font.Size:= 8;

  Font.Style := [fsBold];

  Transparent:= true;

  Font.Color:=$363636;

  Parent:= WizardForm;

  Caption:= cm('ready8');

end;

  LogoForm:= TForm.Create(WizardForm);

  LogoForm.BorderStyle:= bsNone;

  LogoForm.SetBounds(ScaleX(WizardForm.Width div 2 - 230), ScaleY(40), ScaleX(473), ScaleY(440));

  LogoForm.Parent:= WizardForm;

end;

//************************************************ [Êîíåö - Ñîçäàíèå ëåáåëîâ] ***************************************************//

procedure InitializeWizard;

begin

  Enabled:= true;

  CreateWizardImg;

  CreateLabel;

  ButtonsTextures;

  NeedSpace;

  #ifdef Slides

  PicList:=tstringlist.Create;

  ExtractTemporaryFile('fon1.jpg');

  ExtractTemporaryFile('fon2.jpg');

  ExtractTemporaryFile('fon3.jpg');

  ExtractTemporaryFile('fon4.jpg');

  ExtractTemporaryFile('fon5.jpg');

  ExtractTemporaryFile('fon6.jpg');

  ExtractTemporaryFile('fon7.jpg');

  ExtractTemporaryFile('fon8.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon1.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon2.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon3.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon4.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon5.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon6.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon7.jpg');

  piclist.add(ExpandConstant('{tmp}') + '\fon8.jpg');

  #endif

end;

#ifdef Slides

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);

begin

CurrentPicture:=CurrentPicture+1;

if CurrentPicture=piclist.count+1 then CurrentPicture:=1;

ShowImage(piclist.strings[CurrentPicture - 1]);

end;

#endif

procedure CurPageChanged(CurPageID: Integer);

begin

  SetStateNewButtons;

  WelcomeLabel1.Hide;

  WelcomeLabel2.Hide;

  BtnSetVisibility(hDirBrowseBtn, false);

  BtnSetVisibility(hGroupBrowseBtn, false);

  BtnSetVisibility(nic, false);

  ImgSetVisibility(edit, false);

  ImgSetVisibility(dir, false);

  ImgSetVisibility(group, false);

  ImgSetVisibility(work1, false);

  ImgSetVisibility(work2, false);

  ImgSetVisibility(work3, false);

  ImgSetVisibility(work4, false);

  ImgSetVisibility(work5, false);

  ImgSetVisibility(work6, false);

  ImgSetVisibility(work7, false);

  ImgSetVisibility(ready, false);

  #ifdef Components

  ImgSetVisibility(work8, false);

  #endif

  ImgSetVisibility(workerror, false);

  ImgSetVisibility(tasks, false);

  WizardForm.DirEdit.Hide;

  WizardForm.GroupEdit.Hide;

  dir1.Hide;

  FreeSpaceLabel.Hide;

  NeedSpaceLabel.Hide;

  niclabel.Hide;

  WizardForm.ComponentsList.Hide;

  BtnSetVisibility(IconsCheck, false);

  doplbl.Hide;

  IconsCheckLbl.Hide;

  WizardForm.TasksList.Hide;

  complbl.Hide;

  ready0.Hide;

  ready1.Hide;

  ready2.Hide;

  ready3.Hide;

  ready4.Hide;

  ready5.Hide;

  ready6.Hide;

  ready7.Hide;

  BtnSetVisibility(dpo, false);

  dpolbl.Hide;

  if CurPageID = wpWelcome then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon1.jpg'))

    #endif

    LogoForm.Hide;

    WelcomeLabel1.Show;

    WelcomeLabel2.Show;

    ImgSetVisibility(work1, true);

    CancelBtnClick1(0);

    ImgSetVisibility(img1, true);

   end;

  if CurPageID = wpSelectDir then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon2.jpg'))

    #endif

    BtnSetVisibility(hDirBrowseBtn, true);

    ImgSetVisibility(edit, true);

    ImgSetVisibility(dir, true);

    WizardForm.DirEdit.Show;

    FreeSpaceLabel.Show;

    NeedSpaceLabel.Show;

    dir1.Show;

    dir1.Caption:=  cm('dir1');

    dir1.Left:= ScaleX(220);

    dir1.Top:= ScaleX(343);

    ImgSetVisibility(work2, true);

    LogoForm.Hide;

    CancelBtnClick1(0);

    ImgSetVisibility(img2, true);

   end;

  if CurPageID = wpSelectComponents then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon3.jpg'))

    #endif

   #ifdef Components

    WizardForm.ComponentsList.Show;

    WizardForm.ComponentsList.DragMode;

    WizardForm.ComponentsList.Dragging;

    ImgSetVisibility(work3, true);

    complbl.Show;

    LogoForm.Hide;

    CancelBtnClick1(0);

   #endif

   end;

  if CurPageID = wpSelectProgramGroup then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon4.jpg'))

    #endif

    BtnSetVisibility(hGroupBrowseBtn, true);

    ImgSetVisibility(edit, true);

    WizardForm.GroupEdit.Show;

    ImgSetVisibility(group, true);

    dir1.Caption:=  cm('group1');

    dir1.Left:= ScaleX(220);

    dir1.Top:= ScaleX(343);

    dir1.Show;

    BtnSetVisibility(nic, true);

    niclabel.Show;

    #ifdef Components

    ImgSetVisibility(work4, true);

    #else

    ImgSetVisibility(work3, true);

    #endif

    LogoForm.Hide;

    CancelBtnClick1(0);

   end;

  if CurPageID = wpSelectTasks then

   begin

    #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon5.jpg'))

    #endif

     BtnSetVisibility(IconsCheck, true);

     doplbl.Show;

     IconsCheckLbl.Show;

     #ifdef Components

     ImgSetVisibility(work5, true);

     #else

     ImgSetVisibility(work4, true);

     #endif

     ImgSetVisibility(tasks, true);

     BtnSetVisibility(dpo, true);

     dpolbl.Show;

     LogoForm.Hide;

     CancelBtnClick1(0);

   end;

  if CurPageID = wpReady then begin

     #ifdef Slides

    ShowImage(ExpandConstant('{tmp}\fon6.jpg'))

    #endif

   #ifdef Components

   ImgSetVisibility(work6, true);

   #else

   ImgSetVisibility(work5, true);

   #endif

   ready0.Show;

   ready1.Show;

   ready2.Show;

   ready3.Show;

   if BtnGetChecked(IconsCheck) then begin ready5.Hide; ready4.Show end else begin ready4.Hide; ready5.Show; end;

   if BtnGetChecked(dpo) then begin ready7.Hide; ready6.Show end else begin ready6.Hide; ready7.Show; end;

   LogoForm.Hide;

   CancelBtnClick1(0);

   ImgSetVisibility(ready, true);

  end;

  if CurPageID = wpInstalling then

  begin

    #ifdef Slides

    CurrentPicture:=1;

    TimerID:=SetTimer(0, 0, 3000, WrapTimerProc(@OnTimer, 4)); //çàäåðæêà 3000 ìñ (3 ñåêóíäû)

    #endif

   #ifdef Components

   ImgSetVisibility(work7, true);

   #else

   ImgSetVisibility(work6, true);

   #endif

   LogoForm.Hide;

   CancelBtnClick1(0);

  end;

  if CurPageID = wpFinished then

  begin

      #ifdef Slides

      KillTimer(0, TimerID);

    ShowImage(ExpandConstant('{tmp}\fon8.jpg'))

    #endif

   #ifdef Components

   ImgSetVisibility(work8, true);

   #else

   ImgSetVisibility(work7, true);

   #endif

    WelcomeLabel1.Caption:= cm('Fin1');

    WelcomeLabel2.Caption:= cm('Fin2');

    WelcomeLabel2.Top:= WelcomeLabel2.Top-ScaleY(23);

    WelcomeLabel1.Show;

    WelcomeLabel2.Show;

    i.Hide;

    LogoForm.Hide;

    CancelBtnClick1(0);

  end;

  if (CurPageID = wpFinished) and Error then

  begin

  WelcomeLabel1.Caption:= cm('Error1');

  WelcomeLabel2.Caption:= cm('Error2')

  ImgSetVisibility(workerror, true);

  LogoForm.Hide;

  CancelBtnClick1(0);

  end;

  ImgApplyChanges(WizardForm.Handle);

end;

procedure DeinitializeSetup;

begin

  if Enabled then gdipShutdown;

#ifdef Slides

DeinitializeSlideShow;

KillTimer(0, TimerID);

#endif

end;

тут нету isdone

тупой вопрос, но какого хрена не переносит файл 

[Code]
procedure DeletModpakChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
  begin
   FileCopy(ExpandConstant('{app}\{#MyAppName}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'), true);
   DelTree(ExpandConstant('{app}\{#MyAppName}'), True, True, True);
   ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...