ISSprite

DLL ISSprite 0.0.7.49

Нет прав для скачивания
Обновление от товарища Nemko, за что ему большое уважение

Список изменений:
  • - Добавлена поддержка Inno (5.4.1–7.0.0), Inno VCL и Inno EE (добавлено условие для Msg = WM_SIZE в оконной процедуре spWndPaint) Можно запустить и на более старых, но для облегчения тестов на разных версиях использую Preprocessor
  • - Подправлен модуль, добавлена проверка версий Inno Setup, которые поддерживаются ISSprite
  • - Переписаны или дополнены примеры для тестов с учётом всех изменений и осознания неточностей в предыдущих примерах
  • - Добавлены модули для создания: Splash, ProgressBar, TrackBar
  • - Добавлена передача координат курсора в Trampoline (Event) у Shd\Btn для удобства написания Controls
  • - fix: в ClearBits 8 байт буфера оставались необнулёнными, что приводило к артефакту при загрузке Img в правом нижнем углу контейнера
  • - fix: перемещение Child-компонентов, созданных через Inno Setup, в Layered-окне могло вызвать конфликт с DWM Windows 10, интерфейс Windows становился прозрачным, так как возникала проблема с определением региона или значением альфы; компонент перемещался до получения DC, а DLL захватывала рабочий стол (не на всех устройствах)
  • - fix: убрано применение стиля Layered к окну в spImageFormCreate, равного bsNone — это приводило к увеличению окна и неправильным координатам, т. к. эта функция вызывается после создания элементов формы, а стиль должен быть изменён раньше
  • - fix: убрано изменение Z-последовательности окон для создания миниатюры; в новых версиях нет MainForm, и код стал небезопасным

  • *Btn
    • - Добавлены типы выравнивания текста Btn (Left, Center, Right), теперь их 10
    • - Подправлена логика типов выравнивания текста Btn (Default, Left, Center, Right, TopLeft, BottomLeft, TopCenter, BottomCenter, TopRight, BottomRight)
    • - Добавлены функции spBtnSetGroup и spBtnGetGroup для стилей BTN_CHECKBOX, CHECKBOXEX, BTN_TAB, которые разделяют группы по стилям
    • - fix: переписана логика отступа текста Btn в зависимости от Alignment на этапе сборки Btn и при изменении Alignment
    • - fix: подправлено BtnSetPosition у Btn на Layered-окне; мог возникнуть конфликт с DWM Windows 10, флаг bRepaint у MoveWindow всегда равен True, что для Layered нежелательно (не на всех устройствах)
    • - fix: убрана передача Checked = 2 для Btn_TAB, приводившая к ошибке
    • - fix: исправлен неправильный размер буфера для spBtnGetTag: если текст заканчивался цифрой, это приводило к обрезанию длины тега
    • - fix: spBtnSetCursorFile при загрузке другого файла курсора в ту же переменную теперь освобождает старый курсор в памяти
    • - fix: прописано удаление курсора из памяти, созданного через spBtnSetCursorFile, в spShutdown

  • *Img
    • - Добавлен режим интерполяции GDI для более точного определения угла поворота и вычисления региона, но только если Img создан с исходными размерами, иначе будут искажения из-за растягивания при повороте (это особенность GDI+ и рендера Sprite)
    • - fix: тип PGPPoint теперь содержит переменные Single, что позволило добиться визуального изменения при Rotate в диапазоне 358–359
    • - fix: BringToFront и SendToBack теперь перемещают Sprite в массиве, но сохраняют данные переменной Inno, не нарушая последовательности связей
    • - fix: подправлена логика BringToFront и SendToBack с параметром SP_BKDRAW или SP_DRAW
    • - fix: изменён расчёт региона при повороте Img Gif, чтобы не оставались артефакты от частей изображения, вышедших за пределы
    • - fix: исправлено применение флага на перерисовку в spImgRealise, приводившее к невозможности изменять Img в дальнейшем
    • - fix: незначительно исправлены spImgSetPosition и spImgSetVisiblePart

  • *Shd
    • - Добавлена поддержка изменения/получения прозрачности текста Shd (0–255)
    • - Изменён порядок рендера: теперь текст рисуется поверх Img, даже если IsBkgnd = False
    • - fix: добавлена проверка, убирающая бесконечный цикл (зависание) при получении отрицательного значения, если текст выходит за пределы региона
    • - fix: исправлено появление артефактов тени в начале длинных строк, выходящих за пределы
    • - fix: выравнивание вправо теперь применяется, даже если строка не умещается в заданные пределы
    • - fix: убран баг Shd, из-за которого при правом выравнивании текста регион обрезался справа на 1–2 px
    • - fix: подправлено определение региона для Shd при повороте и с разными выравниваниями текста
    • - fix: при повороте на форме, не являющейся Layered-окном, могли оставаться артефакты текста
    • - fix: убрано зависание при установке текста с тегом [Tab=..] в верхнем регистре, который не преобразовывался в нижний
    • - fix: исправлен неправильный размер буфера для spShdGetTag: если текст заканчивался цифрой, это приводило к обрезанию длины тега
    • - fix: добавлена подмена WM_LBUTTONDBLCLK на WM_LBUTTONDOWN в spWndPaint, так как развёртывание формы на весь экран не реализовано, а при двойном клике по Shd форма теряла фокус
Изменения:
  • исправлена "утечка" памяти в оконной функции spWndPaint
  • исправлено пропадания Btn, при нажатии на Tab и Alt
  • исправлено пропадания Btn, при изменение страниц инсталлятора, если на Parent не было изменений
  • к spGifIdleTime присваивается MAX количество кадров для текущего GIF, убирает задержку в анимации при создании
  • добавлена возможность установить значение uElapse для таймера ImageForm (при 0 таймер не создается)
  • исправлены ошибки при компиляции в Delphi, дает возможность компиляции RELEASE версии dll
  • при создании ImageForm, сразу присваивается стиль окна равный окну без рамок
  • при spInitialize добавлена отрисовка миниатюры окна WizardForm, если окно будет найдено
  • spImgBringToFront и spImgSendToBack теперь точно включены в exports в Delphi :)
  • добавлены недостающие флаги для перерисовки Btn и Shd
  • добавлено spImgGetVisiblePie
  • изменена логика в spImgSetVisiblePie
  • изменена логика в spImgGetRotateAngle и spImgSetRotateAngle, теперь 90, 180, 270, 360 отображаются корректно, но по прежнему нет угла 1 градус (пока не знаю как пофиксить)
  • исправлено выравнивание текста на Btn, с разными стилями
  • исправлена смена параметра Checked у Btn, когда кнопка не доступна
  • переименованы некоторые функции, и мелкие-мелкие доработки
  • убрано пропадание текста у Btn со стилем BTN_TAB при изменении размеров
  • теперь Gif изображения скрываются, если Visilble = False
  • spBtnGetSysCursor принимает и Id курсоров из Inno Setup
  • добавлено spBtnSetCursorFile
  • добавлены примеры для тестов (старые и новые)

За обновление нужно сказать спасибо товарищу @Nemko . Он также поправил и систематизировал примеры к библиотеке
  • Like
Реакции: Nemko
Назад
Сверху