-
Content Count
16 -
Joined
-
Last visited
Posts posted by Fenixx
-
-
Как на botva2 добавить этот скрипт
http://www.koreanrandom.com/forum/topic/9050-инсталлятор-для-модпаков/?p=157502
'За место этих компонентов '
-
AtotIK, хоть и поменял координаты все равно не видно их.
если бы знал все, я бы не спрашивал
-
Добрый день!
Как поменять их место положения?в свой скрипт вставил картинки и описание не видно.
'картинка инста стандартого скрипта'
'Обычный тут скрипт с картинками на компонненты и описание к ним'
[setup]
AppName=Моя программа
AppVersion=1.5
AppPublisher=YURSHAT
AppPublisherURL=
DefaultDirName={pf}\Моя программа
[Languages]
Name: RU; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
RU.ComponentsInfo=Наведите курсор мыши на компонент, чтобы прочитать его описание.
RU.ComponentsImgInfo=Наведите курсор мыши на компонент, чтобы посмотреть его превью.
RU.CompDesc1=Описание первого компонента
RU.CompDesc2=Описание второго компонента
RU.CompDesc3=Описание первого компонента
RU.CompDesc4=Описание второго компонента
RU.CompDesc5=Описание первого компонента
RU.CompDesc6=Описание второго компонента
RU.CompDesc7=Описание первого компонента
RU.CompDesc8=Описание второго компонента
RU.CompDesc9=Описание первого компонента
RU.CompDesc10=Описание второго компонента
RU.CompDesc11=Описание первого компонента
RU.CompDesc12=Описание второго компонента
//************************************************ [Описание к модам] ***************************************************//
//************************************************ [Конец модам] ***************************************************//
[Files]
Source: img_mod\1.bmp; DestName: CompDescImg1.bmp; Flags: dontcopy
Source: img_mod\2.bmp; DestName: CompDescImg2.bmp; Flags: dontcopy
Source: img_mod\3.bmp; DestName: MainPic.bmp; Flags: dontcopy
[Components]
Name: comp1; Description: 1. 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. Пользомер(Оленемер).;typeTComponentDesc = recordDescription: String;ImageName: String;Index: Integer;end;varCompDescs: 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);vari: Integer;beginif Index = LastIndex then Exit;CompIndex := -1;for i := 0 to GetArrayLength(CompDescs) -1 dobeginif (CompDescs[i].Index = Index) thenbeginCompIndex := i;Break;end;end;if (CompIndex >= 0) and (Area = iaItem) thenbeginif not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) thenExtractTemporaryFile(CompDescs[CompIndex].ImageName);CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);CompDescImg.Show;CompDescText[2].Caption := CompDescs[CompIndex].Description;CompDescText[2].Enabled := True;end elsebeginCompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MainPic.bmp'));CompDescText[2].Caption := CustomMessage('ComponentsInfo');CompDescText[2].Enabled := False;end;LastIndex := Index;end;procedure CompListMouseLeave(Sender: TObject);beginCompDescImg.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(40), ScaleY(0), ScaleX(225), ScaleY(100));
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(10), ScaleY(10), 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');
AddCompDescription(3, CustomMessage('CompDesc3'), 'CompDescImg1.bmp');
AddCompDescription(4, CustomMessage('CompDesc4'), 'CompDescImg2.bmp');
AddCompDescription(5, CustomMessage('CompDesc5'), 'CompDescImg1.bmp');
AddCompDescription(6, CustomMessage('CompDesc6'), 'CompDescImg2.bmp');
AddCompDescription(7, CustomMessage('CompDesc7'), 'CompDescImg1.bmp');
AddCompDescription(8, CustomMessage('CompDesc8'), 'CompDescImg2.bmp');
AddCompDescription(9, CustomMessage('CompDesc9'), 'CompDescImg1.bmp');
AddCompDescription(10, CustomMessage('CompDesc10'), 'CompDescImg2.bmp');
AddCompDescription(11, CustomMessage('CompDesc11'), 'CompDescImg1.bmp');
AddCompDescription(12, CustomMessage('CompDesc12'), 'CompDescImg2.bmp');
end;'Хотелось бы что бы было так '
-
AtotIK, вот то что твое скопировал нормально все заработало!
-
Всем привет! как правильно прописать в скрипте компоненты? как начинаю ставить инсталлятор тупо не открывает
'Вот как тут не открывает инсталлятор'
//====={ Сюда прописываешь те файлы и папки которые закинул в Mods }=====\\
[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. Пользомер(Оленемер).
[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'Когда так нормально все запускает'
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive
Name: text\eng; Description: Английский; Flags: exclusive
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive
Name: voice\eng; Description: Английский; Flags: exclusive -
Удалил не всё. Показывай тогда код.
'Код'
#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 выдает ошибку
-
Dark_Knight_MiX спасибо все разобрался! как сделать что бы получился один setap, потому что в моем инсталляторе там ISDone, как сделать так чтобы было сжатие как в ScriptModPack2?
-
Спасибо! попробовал сделал получилось!)
Не под скажите как сделать?(удалить установленные моды и сделать рез копию)
[media=1][/media]
-
Все добрый день!
Как добавить картинку к компонентам?
-
Здравствуйте! Киньте пожалуйста готовый скрипт с выбором модов, который день уже пытаюсь не получается!
Буду очень благодарен.
-
Всем привет, хочу создать свои моды с галочками по их выбору можно какой нибудь скрипт где нужно только заменить имя и т.д, я пробовал этой программой все почти получилось картинки на свои заменил но вот когда проверяю или сохраняю программу идет только далее далее и готово а выбора модов нету(( прошу EvilAlex помоги мне объясни только буду очень благодарен и другие тоже а если можно то вообще видео гайд замути по созданию мод пака
А ты разкоментил? строку
#include "Components.iss" ;Êîìïàíåíòû, îíè æå ìîäû
- 1
-
Всем привет! У меня произошла такая проблема, когда устанавливаешь моды по выбору в инсталляторе то после установке, моды некоторые не работают, хотя все распределил по папкам и прописал в скрипте. Что делать подскажите пожалуйста.
-
Добрый вечер! У меня такой вопрос
'Как сделать такой выбор?'
Помогите пожалуйста!
Создание инсталляторов для модпаков на базе Inno Setup
in Modding General Discussion
Posted
Ну объясните, я постараюсь сделать!