night_dragon_on 5,601 #226483 Posted November 1, 2014 (edited) возможность делать бэкап По бэкапу можно использовать такой вариант, он проще: #define SourceDir "res_mods"; #define BackupDir "old_res_mods"; [Setup] AppName=Test AppVersion=1.5 DefaultDirName={pf}\Test OutputDir=. [Code] var BackupCheck: TCheckBox; procedure CopyFiles(FromPlace, ToPlace: String); var ResultCode: Integer; begin Exec('xcopy.exe', '/E /C /H /R /Y /F /I ' + AddQuotes(FromPlace) + ' ' + AddQuotes(ToPlace), ExpandConstant('{app}'), SW_HIDE, ewWaitUntilTerminated, ResultCode); end; procedure BackupCheckCreate(); begin BackupCheck:=TCheckBox.Create(WizardForm); with BackupCheck do begin Parent:=WizardForm.SelectDirPage; SetBounds(ScaleX(WizardForm.DirEdit.Left), ScaleY(WizardForm.DirEdit.Top + 40), ScaleX(WizardForm.DirEdit.Width), ScaleY(15)); Caption:='Сохранить резервную копию перезаписываемых файлов'; Checked:=True; end; end; procedure BackUp(CurStep: TSetupStep); var ThereIsFolders: Boolean; begin if BackupCheck.Checked then begin ThereIsFolders:=(DirExists(AddBackslash(WizardDirValue()) + '{#SourceDir}') and (not DirExists(AddBackslash(WizardDirValue()) + '{#BackupDir}')) ); if ThereIsFolders then if CurStep=ssInstall then begin WizardForm.ProgressGauge.Hide; WizardForm.StatusLabel.Caption:='Создание резервных копий файлов...'; CopyFiles(ExpandConstant('{app}') + '\{#SourceDir}\*.*', ExpandConstant('{app}') + '\{#BackupDir}'); WizardForm.ProgressGauge.Show; WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles); end; end; end; procedure InitializeWizard(); begin BackupCheckCreate(); end; procedure CurStepChanged(CurStep: TSetupStep); begin BackUp(CurStep); end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if CurUninstallStep = usPostUninstall then begin CopyFiles(ExpandConstant('{app}') + '\{#BackupDir}\*.*', ExpandConstant('{app}') + '\{#SourceDir}'); DelTree(ExpandConstant('{app}') + '\{#BackupDir}', True, True, True); end; end; добавить кнопу вкл./выкл. музыки Набор скриптов, библиотек с их использованием (Автор: Kotyarko_O): Набор скриптов, библиот…нием.rar - 31,12 МБ Edited November 1, 2014 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #226487 Posted November 1, 2014 добавить кнопу вкл./выкл. музыки Вот с музыкой и кнопкой: script.rar Про бекап написано комментарием выше. Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #226490 Posted November 1, 2014 (edited) Ребят, подкиньте идейку как впилить на 6 чуство при выборе одного из компонентов его озвучивание. В теме вроде был рабочий вариант, но немогу найти. Edited November 1, 2014 by Darksoul Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #226522 Posted November 1, 2014 (edited) Я делал, ищи.На Озоне ещё недавно вариантик бросал. Edited November 1, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #226532 Posted November 1, 2014 Ребят, подкиньте идейку как впилить на 6 чуство при выборе одного из компонентов его озвучивание. В теме вроде был рабочий вариант, но немогу найти. Quote Share this post Link to post Short link Share on other sites
Hienz 2 #226570 Posted November 2, 2014 (edited) Создал файл BackUpPage.iss скопировал в него код, кроме: [setup] AppName=Test AppVersion=1.5 DefaultDirName={pf}\Test OutputDir=. подключаю его в основной script.iss как #include "BackUpPage.iss" компилирую и в итоге: procedure InitializeWizard1(); https://www.dropbox.com/s/ovtwkvziq0upj6s/Untitled-1.png?dl=0 'Мой modpack' https://www.dropbox.com/s/e7iuodada0j389n/0.9.3%20Modpack%20by%20Hienz%20RC11.6%20xvm5.4.0.2.exe?dl=0 Edited November 2, 2014 by Hienz Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #226571 Posted November 2, 2014 (edited) компилирую и в итоге: Похожий ответ давал на предыдущей странице: Два раза использовали в коде процедуру с одним названием. Вам нужно удалить часть кода из примера бекапа: procedure InitializeWizard(); begin BackupCheckCreate(); end; И добавить параметр BackupCheckCreate(); в уже существующую процедуру InitializeWizard, а не дублировать её (что и приводит к ошибке). Edited May 28, 2017 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
Hienz 2 #226572 Posted November 2, 2014 (edited) конфликт строчек procedure InitializeWizard(); удаляю эту строчку из кода ля музыки , после компиляции естественно перестает работать музыка в инсталляторе, но начинает работать BackUP криво отображая изображения в инсталляторе: https://www.dropbox.com/s/vio75jc8drvsale/Untitled-2.png?dl=0 https://www.dropbox.com/s/muiap5xvpe6kyya/Untitled-3.png?dl=0 AtotlK написал: Если не нужны надписи вверху страницы (там где картинка), то оставляйте пустые кавычки в строке: BackupPage:=CreateCustomPage(wpWelcome, '', '');Тогда нужно будет ещё скрыть белый фон, на котором эти надписи отображаются. В InitializeWizard() добавьте: WizardForm.PageNameLabel.Hide; WizardForm.PageDescriptionLabel.Hide; не помогает 8 ( Edited November 2, 2014 by Hienz Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #226573 Posted November 2, 2014 (edited) procedure InitializeWizard(); удаляю эту строчку из кода ля музыки , после компиляции естественно перестает работать музыка в инсталляторе Так я писал о удалении строки от бекапа и добавления нужного параметра в уже существующую процедуру InitializeWizard(); (в вашем случае там находится часть кода отвечающего за проигрывание музыки и отображение фонового изображения). А вы как раз сделали все наоборот. Edited November 2, 2014 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
Hienz 2 #226577 Posted November 2, 2014 (edited) Все работает 8 ) Всем большое СПАСИБО!!! Может подскажите как добавить лого по центру экрана при запуске модпака? (как у Amway921 и AtotlK в WOT-FAN) Спасибо! Edited November 2, 2014 by Hienz Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #226658 Posted November 3, 2014 (edited) Может подскажите как добавить лого по центру экрана при запуске модпака? 'Код' isgsg.dll [Files] Source: "Splash.png"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy; Source: "isgsg.dll"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy; [Code] procedure ShowSplashScreen(p1:HWND;p2:ansistring;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload'; procedure InitializeWizard; begin ExtractTemporaryFile('Splash.png'); ExtractTemporaryFile('isgsg.dll'); ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False,$FFFFFF,10); end; Edited November 3, 2014 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #226659 Posted November 3, 2014 (edited) del Edited November 3, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #226662 Posted November 3, 2014 (edited) -delete- Edited November 3, 2014 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #226682 Posted November 3, 2014 (edited) конфликт строчек procedure InitializeWizard(); удаляю эту строчку из кода ля музыки , после компиляции естественно перестает работать музыка в инсталляторе, но начинает работать BackUP криво отображая изображения в инсталляторе: https://www.dropbox.com/s/vio75jc8drvsale/Untitled-2.png?dl=0 https://www.dropbox.com/s/muiap5xvpe6kyya/Untitled-3.png?dl=0 AtotlK написал: Если не нужны надписи вверху страницы (там где картинка), то оставляйте пустые кавычки в строке: BackupPage:=CreateCustomPage(wpWelcome, '', '');Тогда нужно будет ещё скрыть белый фон, на котором эти надписи отображаются. В InitializeWizard() добавьте: WizardForm.PageNameLabel.Hide; WizardForm.PageDescriptionLabel.Hide; не помогает 8 ( Наберите скайп kozyrny2 часиков в 8 по мск, помогу, трабл то мелкий:) Есть у кого нибудь пример кода бекапа, если он отображает функции на странице wpSelectDirPage, которая отрисована с нуля с помощью ботвы? Я даже знаю, какя сво... минуснула пост;) Edited November 3, 2014 by Darksoul 1 2 Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #226719 Posted November 3, 2014 (edited) Есть у кого нибудь пример кода бекапа, если он отображает функции на странице wpSelectDirPage, которая отрисована с нуля с помощью ботвы? Ну взять пример бекапа который предложил @AtotIK, там параметр Parent как раз и отвечает за расположение элементов на нужной вам странице. Например у вас есть страница (форма) созданная с нуля и имеет название к примеру DirForm: DirForm:=CreateCustomForm(); with DirForm do begin ClientWidth:=ScaleX(500); ClientHeight:=ScaleY(500); Caption:='Выбор директории'; end; То задав параметр Parent:=DirForm; мы расположим элемент как раз на нужной нам форме: procedure BackupCheckCreate(); begin BackupCheck:=TCheckBox.Create(WizardForm); with BackupCheck do begin Parent:=DirForm; SetBounds(ScaleX(WizardForm.DirEdit.Left), ScaleY(WizardForm.DirEdit.Top + 40), ScaleX(WizardForm.DirEdit.Width), ScaleY(15)); Caption:='Сохранить резервную копию перезаписываемых файлов'; Checked:=True; end; end; Edited November 3, 2014 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
Hienz 2 #226727 Posted November 3, 2014 Так я писал о удалении строки от бекапа и добавления нужного параметра в уже существующую процедуру InitializeWizard(); (в вашем случае там находится часть кода отвечающего за проигрывание музыки и отображение фонового изображения). А вы как раз сделали все наоборот. Код и Splesh.png добавил, компиляция выполняется, модпак запускается. Время запуска увеличилось типа показывает Splesh, но на самом деле Splesh.png не отображается Спасибо! 'script' https://www.dropbox.com/s/mcbqtpate5up3e5/script.iss?dl=0 Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #226729 Posted November 3, 2014 (edited) но на самом деле Splesh.png не отображается UPD: Похоже с Unicode версией компилятора загвоздка вышла, вот решение: isgsg.dll работает и в анси и в юникоде. Просто в ее вызове нужно сменить единственный параметр string на ansistring и все. и никаких доработок не требуется Код Edited November 3, 2014 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
ZLoy 14 #227630 Posted November 5, 2014 Добрый день, ребята может кто подсказать и поделится скриптом !? Первый вариант удаляет содержимое папки рес_мод без всяких предупреждений Второй тоже самое как и в первом но оставляет папку согласно патча 0.9.4 например Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #227634 Posted November 5, 2014 Первый вариант удаляет содержимое папки рес_мод без всяких предупреждений [InstallDelete] Type: filesandordirs; Name: "{app}\res_mods\*"; Второй тоже самое как и в первом но оставляет папку согласно патча 0.9.4 например [InstallDelete] Type: filesandordirs; Name: "{app}\res_mods\0.9.4\*"; Type: filesandordirs; Name: "{app}\res_mods\xvm"; 1 Quote Share this post Link to post Short link Share on other sites
ZLoy 14 #227656 Posted November 5, 2014 [InstallDelete] Type: filesandordirs; Name: "{app}\res_mods\*"; [InstallDelete] Type: filesandordirs; Name: "{app}\res_mods\0.9.4\*"; Type: filesandordirs; Name: "{app}\res_mods\xvm"; Огромное Вам спасибо ! ! !! В тором варианте оставит папку xvm? #define Patch "0.9.4" Type: filesandordirs; Name: "{app}\res_mods\{#Patch}\*"; Type: filesandordirs; Name: "{app}\res_mods\xvm"; Так но верно получше? Quote Share this post Link to post Short link Share on other sites