Обсуждение Inno Setup 6

Как вам Inno Setup 6?


  • Всего проголосовало
    30

YURSHAT

Тех. админ
Администратор
Доброго времени суток юзеры форума!

Не так давно, Inno Setup обновился до 6-ой версии.. И, уже даже вышел из беты. Соответственно, хотелось бы задать вопрос форумчанам: "Как вам новая инка?"

От себя:

Компилятор (IDE)

Что первое бросается в глаза - дизайн компилятора (IDE). Диз стал "плоским", как сейчас модно :) Глифы на кнопках тулбара стали поддерживать различные значения DPI. Ну и появилось несколько тем - светлая, тёмная, классическая. Темы конечно не полное скинирование всех окон, да и изменить их нельзя. Классика от Светлой почти не отличаются, отличия только в цвете подсветки синтаксиса в редакторе. Тёмная перекрашивает подсветку в редакторе + часть интерфейса - тулбар и панель с вкладками Debug/Compiler/Stack Output. По сути всё...

Инсталлятор
В инсталлере, конечно, на порядок большие изменения. Мелочи, в виде улучшенной поддержки новых осей и выпиливания старья, типа поддержки WinXP, описывать не буду. Отмечу лишь одну новую полезную функцию - CreateCallback. Теперь не нужно таскать CallbackCtrl.dll, InnoCallback и прочие...

Одно из ключевых изменений - Modern Style. В чём заключается - масштабирование окна до 120% + возможность изменять размер окна инсталла. ХЗ, но ИМХО фича сомнительная. Нафига кому-то расягивать окно визарда в процессе инсталляции? Да и скриптерам эта фича ИМХО принесёт гемморой - теперь нужно учитывать это "растягивание" и масштабирование.

А что скажете Вы? Успели пощупать "сие творение"? Как впечатления?
 

Nemko

Дилетант
Модератор
YURSHAT, пользуюсь обеими версиями (для тестов), в оригинале печатать неудобно без вкладок и авто подсказок, посему печатаю в Restool'овской версии, а "компилю" в оригинале. Давно пора завести отечественную версию Inno со всеми удобствами и развитием. А то китайская версия с годами не становиться новее (логика).
 

Andreo Fadio

Старожил
По поводу растягивания при modern style ХЗ про какие проблемы у скриптеров могут возникать и что там учитывать надо - можно просто не использовать и будет все стандартно, а так опция полезна для новичков.

Особых трудностей с переходом не заметил, но удобства прибавилось :)
 

SBalykov

Старожил
YURSHAT
Крайний вопрос, как мне кажется, не совсем корректен.
Многие используют Enhanced edition, но отвечать при этом, что понравилась 6-ка, как-то не камильфо...
 

YURSHAT

Тех. админ
Администратор
@SBalykov, согласен, добавил четвёртый вариант ответа

ЗЫ. @SBalykov, проголосовал, а не отписался, почему не понравилось... Поделись, не стесняйся ;)
 
Последнее редактирование:

Andreo Fadio

Старожил
Чтобы один и тот же инсталлер выглядел нормально и при Modern и при Classic стиле.
Нет, можно конечно сказать юзверям - скрипт работает онли в классик, но как-то не комильфо.
такое же примерно есть во всех inno setup, только иначе через code WizardForm.BorderStyle:= bsSizeable одной строчкой, почему-то никто до этого не задался такими вопросами - по сдвигу элементов и красивому отображению во всех размерах формы, с чего бы сейчас так переживать? :) Да и нет ничего зазорного в указание работе скрипта, готовое решение - оно и на то готовое, что уже основное сделано (оформление и код) - тебе только подставить свои архивы и названия с картинками, а что не нравится то сам ручками.
 

YURSHAT

Тех. админ
Администратор
с чего бы сейчас так переживать?
Потому как это стандартная функция теперь. Ну ХЗ, мне так показалось, а там посмотрим, когда 6-ка полноценно войдёт в обиход)
У каждого скриптера свой подход...
 

zettend

Старожил
Хммм... я уже который год пользуюсь VS Code. Имхо! Работаю из под macOS и VS Code даёт расширенную поддержку Git. Всё, что изменилось в моей жизни, так это .../Inno Stup 5 6/Compil32.exe.
 

SBalykov

Старожил
@SBalykov, проголосовал, а не отписался, почему не понравилось... Поделись, не стесняйся ;)
Да, по-большому , лет 40 назад перестал стесняться...
Не понравилась по многим пунктам, но описывать их смысла не вижу, поскольку слишком много времени провел в Enhanced edition, которая дает расширенные возможности в создании компиллятора и не увидел их в 6 версии, в которой, слишком много, на мой взгляд, лишнего...
Жаль, что данный проект перестал развиваться!
 

Leserg

Участник
Проголосовал за 6. Хотя некоторые вещи в первое время вызвали резкое неприятие.
Первое и самое глобальное — это переезд в среду разработки Delphi 10.2 а потом и 10.3. Пришлось много провозиться с установкой, настройкой и адаптацией локализации Inno под новые условия. Помимо этого установочные файлы (загрузчик SetupLdr.e32 и установщик Setup.e32) распухли до невероятных размеров по сравнению с 5 линейкой Inno. Основная же причина смены компилятора: поддержка различных DPI прямо из коробки и добавление новых функций, типа TaskDialogMsgBox, SuppressibleTaskDialogMsgBox. Кстати, из-за использования последних разработчику и пришлось отказаться от поддержки Windows XP.

Диалог выбора задачи (для его вызова используется функция Windows API, которой нет в Windows XP)
TaskDialog.png

Второе, что не понравилось — это современный стиль установщика (WizardStyle=modern). Хоть убейте, но не могу понять: почему установка белого цвета большинству элементов управления считается современным (modern). Что в этом современного?

Современный (заголовок страницы "повис" в воздухе, сама страница белого цвета) :facepalm:
Modern.png

Классический (заголовок и страница имеют четкое разделение и создают целостность компоновки) :good:
Classic.png

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

Третье — необходимость адаптировать большинство своих сценариев под 6 версию. Особенно те, в которых использовались кастомные страницы установки: элементы управления стали жить собственной жизнью. Причина в новых функциях: резайзинга и масштабирования. Теперь при проектировании страничек элементам управления необходимо давать соответствующую привязку (свойство Anchors).

Без привязки
WithoutAnchors.gif

С привязкой
WithAnchors.gif

После небольшого периода ломки я окончательно пересел на Inno 6 и использую её модифицированную версию (как редактор, так и компилятор). Основная модификация: поддержка Delphi VCL Styles (*.vsf). Теперь я окончательно доволен. Основная область применения: создание инсталляторов для локализованных версий программ.

Расширенной версией от ResTools пользовался пока была её поддержка. Многие фишки были очень полезные, но отсутствие развития свело использование данной модификации на нет. Сейчас в свободное время занимаюсь добавлением в Inno 6 функций и элементов управления, которые были в расширенной версии. Например, на сегодня удалось добавить следующее:

- функции: FormatFloat, ExtractTemporaryFileEx, ExtractTemporaryFileToStream, FindResource, LoadResource, SizeofResource, LockResource, UnlockResource, FreeResource, LoadCursorFromFile, LoadImage, DrawIconEx, DestroyIcon, SetWindowText, Randomize;

- элементы управления: TGroupBox, TIcon, TScreen, TSpeedButton, TBitBtn, TCustomButton, TTrackBar, TCustomUpDown, TUpDown, TCustomHotKey, THotKey, THeader, TMenu, TPopupMenu, TApplication;

- свойства: OnMouseEnter, OnMouseLeave, DoubleBuffered, ParentDoubleBuffered;

- директивы: BitmapResource, IconResource, RawDataResource.

Всеми этими дополнениями вы сможете воспользоваться скорее всего в версии 6.0.5, если ничего не помешает. Пока же работа потихоньку продолжается. Процесс этот медленный и сопряжен со многими трудностями. Некоторые элементы управления в расширенной версии были модифицированы или созданы с нуля, например, такие как TNewSpeedButton, TNewIconImage, TNewCheckListBox, TIPAddressEdit, и воссоздать их мне не по силам. Еще у меня вызывает сомнение добавление математических функций, типа синуса, косинуса, квадратного корня и т.д., т.к. ни разу не приходилось ими пользоваться. Нужны ли они в Inno 6?
 

Andreo Fadio

Старожил
Третье — необходимость адаптировать большинство своих сценариев под 6 версию. Особенно те, в которых использовались кастомные страницы установки: элементы управления стали жить собственной жизнью. Причина в новых функциях: резайзинга и масштабирования. Теперь при проектировании страничек элементам управления необходимо давать соответствующую привязку (свойство Anchors).
Допустим сама установка с определенным размером и кастомными страницами без учета растягивания, если смысл в указание свойств Anchors?
 

Leserg

Участник
Допустим сама установка с определенным размером и кастомными страницами без учета растягивания, если смысл в указание свойств Anchors?
Теперь любой добавленный в проект элемент управления по умолчанию имеет привязку слева-сверху (Anchors := [akLeft,akTop]).

Если вы используете классический стиль инсталлятора (WizardStyle=classic – по умолчанию), то нет необходимости дополнительно указывать данное свойство. Поведение элементов ничем на форме не отличается от ранних версий Inno – они будут размещены на форме корректно. Но с учётом появления поддержки DPI размеры (W, H) и позицию (X, Y) элементов желательно указывать посредством функций ScaleX и ScaleY, чтобы они имели корректное масштабирование при изменении DPI или шрифта в секции [LangOptions].

Если вы планируете применять современный стиль (WizardStyle=modern), или же классический стиль WizardStyle=classic, но с директивами масштабирования WindowResizable, WizardSizePercent или секции [LangOptions], то вам нужно позаботиться о корректном размещении элементов, используя свойства Anchors и KeepSizeY.

Общие рекомендации:
— при разработке страничек сразу берите во внимание особенности масштабирования/изменения размеров окна и делайте соответствующую привязку элементов управления. В будущем это поможет вам избежать некорректной компоновки элементов в случае изменений в сценарии визуальных параметров инсталлятора (WizardStyle, WindowResizable, WizardSizePercent или [LangOptions]).
— размеры (W, H) и позицию (X, Y) элементов указывайте посредством функций ScaleX и ScaleY, чтобы они имели корректное масштабирование при изменении DPI или шрифта.
 

Leserg

Участник
Добавил модифицированную версия Inno Setup 6.0.5 с поддержкой визуальных стилей *.vsf. Также сделал частичную реализацию разработки restools, о чем говорил ранее. Смотрите архив по пути VCL > ISCmplr > FullVCL > IS6.0.5FullVclMod.rar. Там же в архиве находится папка с примерами. Внимательно их изучите, т.к. имеются некоторые отличия от проекта restools.
 

Leserg

Участник
Требуется помощь: необходимо модифицировать компонент TNewCheckListBox по аналогии с RESTOOLS (прозрачность фона, свой рисунок в качестве фона, свои изображения чекбоксов/радиокнопок). Нужно готовое и проверенное решение, а я уже попробую внедрить его в инку.

Что получилось: добавил возможность изменять стиль шрифта для любого пункта списка.
TNewCheckListBox-mod1.png
Свойства ItemFontStyle и SubItemFontStyle (по аналогии с модификацией от Restools)
 

Xabib2302

Новичок
Хотелось бы видеть еще несколько фичей.
CenterInsideControl
WizardForm.CancelButton.Click
SelectLanguageForm
 
Сверху