Windows темная тема Lazarus или LCL приложения
Модератор: Модераторы
Windows темная тема Lazarus или LCL приложения
https://github.com/zamtmn/metadarkstyle
Сам модуль переопределяющий классы контролов взял у Alexx2000 из его Double Commander, немного допилил и поправил
metadarkstyle.lpk - пакет переопределяющий виджеты для LCL приложения
metadarkstyledsgn.lpk - пакет для транкового Lazarus IDE
metadarkstyledsgn226.lpk - пакет для стабильного Lazarus IDE 2.2.6 (актуально на момент описания)
Примеры использования для приложений в папке examples
Для установки в Lazarus устанавливаем metadarkstyle.lpk, затем metadarkstyledsgn.lpk/metadarkstyledsgn226.lpk в зависимости от версии иде
В настройках иде появляется пункт Dark style где можно выбрать цветовую схему иде (для редактора кода выбирать/настраивать схему отдельно в настройках редактора). Все манипуляции выполняются при старте лазаря, поэтому для применения новых настроек необходим рестарт
Цветовые схемы представляют из себя текстовые файлы вида https://github.com/zamtmn/metadarkstyle ... tylecolors которые нужно линковать в ресурсы или помещать в папку userschemes в папке настроек лазаря
Пока более-менее работает схема Dark - она использует системную отрисовку контролов, в других схемах некоторые контролы рисуются руками, что недопилено.
Репорты/патчи приветствуются))
Сам модуль переопределяющий классы контролов взял у Alexx2000 из его Double Commander, немного допилил и поправил
metadarkstyle.lpk - пакет переопределяющий виджеты для LCL приложения
metadarkstyledsgn.lpk - пакет для транкового Lazarus IDE
metadarkstyledsgn226.lpk - пакет для стабильного Lazarus IDE 2.2.6 (актуально на момент описания)
Примеры использования для приложений в папке examples
Для установки в Lazarus устанавливаем metadarkstyle.lpk, затем metadarkstyledsgn.lpk/metadarkstyledsgn226.lpk в зависимости от версии иде
В настройках иде появляется пункт Dark style где можно выбрать цветовую схему иде (для редактора кода выбирать/настраивать схему отдельно в настройках редактора). Все манипуляции выполняются при старте лазаря, поэтому для применения новых настроек необходим рестарт
Цветовые схемы представляют из себя текстовые файлы вида https://github.com/zamtmn/metadarkstyle ... tylecolors которые нужно линковать в ресурсы или помещать в папку userschemes в папке настроек лазаря
Пока более-менее работает схема Dark - она использует системную отрисовку контролов, в других схемах некоторые контролы рисуются руками, что недопилено.
Репорты/патчи приветствуются))
Последний раз редактировалось zub 13.07.2023 18:48:02, всего редактировалось 1 раз.
Re: Windows темная тема Lazarus или LCL приложения
Да просто цвета поменять, этого недостаточно. Для кода на чёрном фоне нужно и отрубить привычку лазаруса манипулировать жирностью символов и шпарить весь текст упитанными буквами, как в линуксовой консольной иде. Вот там после настройки цвета идеальные.


Re: Windows темная тема Lazarus или LCL приложения
Смысл не раскрасить редактор - он и так прекрасно раскрашивается как душе угодно, а темные контролы
Re: Windows темная тема Lazarus или LCL приложения
Да плохо он раскрашивается. Шрифты на ЖК мониторах, это сложная тема. Полтора жэкашных пикселя хорошо не сделаешь, а ещё есть сглаживание, которое тоже требует линий определённой толщины. И получается, что определённые цвета требуют линий определённой толщины, которые не даёт сделать лазарус. С контролами в линуксе в кедах вообще всё хорошо: настраиваешь системную тему как тебе нужно, без всяких прозрачностей, а потом лазарус её подхватывает. Но опять же, что хорошо выглядит на одном мониторе и ОС, то плохо в других, потому чтоизготовители мониторов любят экономить копейки на шим и нормально отрегулировать подсветку матрицы не всегда возможно, а изготовители дров видухи любят забивать на фичи, необходимые для снижения яркости цветов программными методами. Нужно веть так затемнить светлые цвета, чтобы и тёмные не сливались в сплошной чёрный, а для этого необходима продвинутая регулировка контрастности, которая конечно же снизит фпс в играх, а потому в свободных дровах её делать не хотят, чисто для очковтирательства: смотрите какое у нас игровое фпс высокое, наслаждайтесь им в офисных приложениях!
Re: Windows темная тема Lazarus или LCL приложения
Тут про тёмную тему для lcl приложений в windows, не про шрифты на жк мониторах, завязывай
Re: Windows темная тема Lazarus или LCL приложения
zub писал(а):Смысл не раскрасить редактор - он и так прекрасно раскрашивается как душе угодно, а темные контролы
C цветами контролов все довольно печально но решаемо....
PageControl изменить стиль заголовка TabSheet

Зы
При желании или необходимости Кнопки (TButton ) успешно заменяются панельками (TPanel) (у них цвет меняется нормально )
Добавлено спустя 16 минут 55 секунд:
Кстати, кто-нибудь в курсе как можно поменять цвета в заголовке окна
Re: Windows темная тема Lazarus или LCL приложения
В данном пакете оно почти решено. но работает только в windows 10.
Приложу пару скриншотов:
Приложу пару скриншотов:
Re: Windows темная тема Lazarus или LCL приложения
Здорово, но (ИМХО) не очень актуально вот если бы в своей программе можно было столь же легко менять цвета и палитры это было бы совсем другое дело !
(Вроде в шапке темы есть указание на metadarkstyle.lpk (- пакет переопределяющий виджеты для LCL приложения ) но мучают меня смутные сомнения )
Потому что, для того чтобы перекрасить хотя-бы часть "стандартных контролов" LCL мне понадобились такие "танцы с бубном" что в простое общее изменение цвета верится с большим трудом.
(Вроде в шапке темы есть указание на metadarkstyle.lpk (- пакет переопределяющий виджеты для LCL приложения ) но мучают меня смутные сомнения )
Re: Windows темная тема Lazarus или LCL приложения
Что тут можно сказать, наверно стоит попробовать?
Пакет естественно сырой, но вполне работает. палитра меняется как в лазаре так и в Вашем LCL приложении))
Пакет естественно сырой, но вполне работает. палитра меняется как в лазаре так и в Вашем LCL приложении))
Re: Windows темная тема Lazarus или LCL приложения
Ок Спасибо ! Попробую.
Re: Windows темная тема Lazarus или LCL приложения
Кстати есть ведь модуль UxTheme вроде делает тоже самое. (У меня не заработал но кое какие запреты на изменение цвета я сего помощью снял )
Re: Windows темная тема Lazarus или LCL приложения
Нет, он используется конечно, но сам по себе не решает проблем.
Поправил компиляцию примеров
Поправил компиляцию примеров
Re: Windows темная тема Lazarus или LCL приложения
zub писал(а):Поправил компиляцию примеров
Надо проверить, а то я честно говоря устыдился спрашивать "Что не так с примерами? "
(Что-то такое я все же собрал ... но по ощущениям вышло "чудовище Франкенштейна " так что отложил в долгий ящик )
Зы
А скроллбар цвет меняет? Потому что у меня с ним знатный затык ( есть аналоги в пакетах типа Графикс32 но там нет нужного мне обработчика события OnScroll )
Можно разумеется "нарисовать" свой аналог но для развой заплатки это (ИМХО) слишком кудряво.
Последний раз редактировалось Alex2013 25.07.2023 13:14:17, всего редактировалось 2 раза.
Re: Windows темная тема Lazarus или LCL приложения
не стесняемся, наводим критику))
скролбар цвет меняет. у него 2 режима: если в файле темы есть
то рисуется простенький скролбарр в соответствии с цветами палитры как на моем "синем" скриншоте выше
если
то рисуется системный скролбарр из темного проводника. как на "черном" криншоте
но пока с скроллбарами есть баг, например у меня в зкаде несмотря на CustomDrawScrollbars:=true на некоторых мемо (и других контролах где скроллбар "встроен") создается "черный" системный скроллбар
скролбар цвет меняет. у него 2 режима: если в файле темы есть
CustomDrawScrollbars:=true;
то рисуется простенький скролбарр в соответствии с цветами палитры как на моем "синем" скриншоте выше
если
CustomDrawScrollbars:=false;
то рисуется системный скролбарр из темного проводника. как на "черном" криншоте
но пока с скроллбарами есть баг, например у меня в зкаде несмотря на CustomDrawScrollbars:=true на некоторых мемо (и других контролах где скроллбар "встроен") создается "черный" системный скроллбар
Re: Windows темная тема Lazarus или LCL приложения
Ок! "Буду посмотреть"
