Kaster62rus Posted February 15, 2015 Share Posted February 15, 2015 Без разницы где будешь компилить - всё равно на 8 и 8.1 будут глюки. Советую присмотреться к VCL Styles for Inno Setup Благодарю! Спас от нервного срыва... Всё работает. Единственный замут что в скрипте указать надо версию Inno Setup (Ansi или Unicode). Строка: procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall'; // Unicode либо procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleA@files:VclStylesInno.dll stdcall'; // Ansi Благо есть альтернатива! #define AW = (Defined UNICODE) ? "W" : "A" procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyle{#AW}@files:VclStylesinno.dll stdcall'; @ Quote Link to comment Short link Share on other sites More sharing options...
voin_123 Posted February 15, 2015 Share Posted February 15, 2015 Вроде доделал. Объясняю как работает: Через #include подключается файл, в котором описаны функции работы с файлами и папками. В частности тут это - MoveDir. Нужна версия Inno Setup с установленным препроцессором. Страница создаётся после начальной. Выбираете действие и спокойно идете дальше по установке. Как только инсталлятор переходит на процесс установки (страница ssInstall) запускается чекер, который смотрит какой пункт был выбран и исходя из этого запускает нужную функцию на исполнение. В первом варианте удаляются папки 0.8.11 и xvm, потом создаётся пустая папка 0.8.11. Во втором варианте папки 0.8.11 и xvm переносятся в res_mods\backup. После создаётся пустая папка 0.8.11. Третий вариант создаётся как "заглушка", ничего не происходит при его выборе. Если не нужны надписи вверху страницы (там где картинка), то оставляйте пустые кавычки в строке: BackupPage:=CreateCustomPage(wpWelcome, '', ''); Тогда нужно будет ещё скрыть белый фон, на котором эти надписи отображаются. В InitializeWizard() добавьте: WizardForm.PageNameLabel.Hide; WizardForm.PageDescriptionLabel.Hide; Поле этого страница будет выглядить примерно вот так: В общем спрашивайте, если что-то не понятно. Вроде всё доступно написал. Куда закидывать эти 2 файла в архиве или куда вставить?:( @ Quote Link to comment Short link Share on other sites More sharing options...
konan007 Posted February 15, 2015 Share Posted February 15, 2015 только на юникоде делай Я догадался :) На Анси не пошло, на юникоде все работает!!!! Еще раз Спасибо. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 15, 2015 Share Posted February 15, 2015 Куда закидывать эти 2 файла в архиве или куда вставить?:( думай @ Quote Link to comment Short link Share on other sites More sharing options...
voin_123 Posted February 15, 2015 Share Posted February 15, 2015 думай Ну а как создать строку какая будет создавать 2 галочки удалить старые моды или оставить? или просто одна удалить или оставить? @ Quote Link to comment Short link Share on other sites More sharing options...
-zav- Posted February 15, 2015 Share Posted February 15, 2015 Умные люди будьте добры подскажитеВот в справке есть пример и он работает [Setup] Uninstallable=not IsTaskSelected('portablemode') [Tasks] Name: portablemode; Описание: "Portable Mode" Но как вместо [Tasks] сделать через TNewCheckBox ? var UninstCheckBox: TCheckBox; begin UninstCheckBox:=TNewCheckBox.Create(WizardForm); UninstCheckBox.Parent:=WizardForm.SelectComponentsPage; UninstCheckBox.Top:=ScaleY(52); UninstCheckBox.Left := ScaleX(10); UninstCheckBox.Width:=650; UninstCheckBox.Caption:='Создать деинсталлятор' UninstCheckBox.Checked:=False; end; @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 15, 2015 Share Posted February 15, 2015 Умные люди будьте добры подскажите Вот в справке есть пример и он работает [Setup] Uninstallable=not IsTaskSelected('portablemode') [Tasks] Name: portablemode; Описание: "Portable Mode" Но как вместо [Tasks] сделать через TNewCheckBox ? var UninstCheckBox: TCheckBox; begin UninstCheckBox:=TNewCheckBox.Create(WizardForm); UninstCheckBox.Parent:=WizardForm.SelectComponentsPage; UninstCheckBox.Top:=ScaleY(52); UninstCheckBox.Left := ScaleX(10); UninstCheckBox.Width:=650; UninstCheckBox.Caption:='Создать деинсталлятор' UninstCheckBox.Checked:=False; end; а это для чего? если не секрет @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted February 15, 2015 Share Posted February 15, 2015 (edited) @-zav-, [Setup] Uninstallable=UninstallAbleCheck [Code] Var UninstCheckBox: TNewCheckBox; Procedure InitializeWizard(); begin UninstCheckBox:=TNewCheckBox.Create(WizardForm); UninstCheckBox.Parent:=WizardForm.SelectComponentsPage; UninstCheckBox.Top:=ScaleY(52); UninstCheckBox.Left := ScaleX(10); UninstCheckBox.Width:=650; UninstCheckBox.Caption:='Создать деинсталлятор' UninstCheckBox.Checked:=False; end; Function UninstallAbleCheck(): Boolean; begin Result := UninstCheckBox.Checked; end; Edited February 15, 2015 by Kotyarko_O @ Quote Link to comment Short link Share on other sites More sharing options...
-zav- Posted February 15, 2015 Share Posted February 15, 2015 а это для чего? если не секрет Дать возможность пользователю выбирать будет создаваться деинсталлятор или нет , Спасибо работает @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 16, 2015 Share Posted February 16, 2015 Дать возможность пользователю выбирать будет создаваться деинсталлятор или нет ясно @ Quote Link to comment Short link Share on other sites More sharing options...
konan007 Posted February 16, 2015 Share Posted February 16, 2015 Извиняюсь за еще одну просьбу А код распаковки 7zip или Zip c прогрессбаром не подкините? (если не жалко) Заранее огромное спасибо.......... @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted February 16, 2015 Share Posted February 16, 2015 А код распаковки 7zip или Zip c прогрессбаром не подкините? В примерах IsDone есть. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 16, 2015 Share Posted February 16, 2015 Можно ли написать несколько парентов в одну строку? @ Quote Link to comment Short link Share on other sites More sharing options...
ZLoy Posted February 17, 2015 Share Posted February 17, 2015 Не подскажите как убрать это сообщение ( интерполятор автоматом чистит содержимое res_mods) @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 17, 2015 Share Posted February 17, 2015 (edited) Не подскажите как убрать это сообщение ( интерполятор автоматом чистит содержимое res_mods) 2015-02-17 02-57-24 Установленные компоненты.png компоненту поставь Flags: disablenouninstallwarning; Edited February 17, 2015 by ♫♫♫Dark_Knight_MiX♫♫♫ 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted February 17, 2015 Share Posted February 17, 2015 Можно ли написать несколько парентов в одну строку? Нет. Но если включить логику, можно придумать несколько решений, в зависимости от нужд. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 17, 2015 Share Posted February 17, 2015 Нет. Но если включить логику, можно придумать несколько решений, в зависимости от нужд. нужно прописать на 6 стр кнопку @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted February 17, 2015 Share Posted February 17, 2015 (edited) интерполятор Не угадали. нужно прописать на 6 стр кнопку Как круто на середине предл обр слов чтобы никто ничего не понял. "странице" или "страницах"? Edited February 17, 2015 by Kotyarko_O @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted February 17, 2015 Share Posted February 17, 2015 Не угадали. Как круто на середине предл обр слов чтобы никто ничего не понял. "странице" или "страницах"? страницах @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted February 17, 2015 Share Posted February 17, 2015 (edited) страницах Скрываешь объект, а потом через кейс в CurPageChanged показываешь его там, где нужно. Edited February 17, 2015 by Kotyarko_O @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.