iteg
|
Posted: Wed Nov 22, 2023 15:48 Post subject: |
|
|
yozhik, спасибо за столь подробный ответ.
С 'Dark Mode' ситуация такова:
1) В плагине использую только стандартные компоненты, поэтому, кроме установки основного цвета (или от родителя) и цвета шрифта, нет никаких возможностей кастомизации отдельный элементов контролов.
2) Для задания единого цвета всем контролам использую событийные механизмы ParentColor и ParentFont, т.е. настройки от родительской формы Color и Font передаются всем дочерним контролам. При этом установка цвета контрола не всегда применима ко всем внутренним элементам самого контрола, потому что некоторые контролы в Delphi являются обвертками на системными компонентами, которые имеют скудные настройки. Например, TabControl. Фон меняется, а кнопки (метки) нет. Для таких контролов пришлось перекрывать рисование, которое трудоемко в поддержке и не охватывает все возможные ситуации. На текущий момент кастомно рисую заголовки TabControl и ListView.
3) Для TabControl изменил стиль заголовка на Button (ранее было FlatButton) из-за перекрытия рисования в 'Dark Mode' появлялась промежуточная светлая рамка. Поэтому и остановился на трехмерных 'кнопках'.
4) Из-за использования ParentColor в Normal режиме цвет сетки слился с фоном.
5) Изначально предоставил версию 'Dark Mode' для определения реакции на сетку в компонентах ListView. Сейчас GridLines отключил для двух режимов.
6) Цвет фона для 'Dark Mode' - $00202020 цвет Windows 11 Dark Mode, а также Default цвет фона в TC. Поэтому его и выбрал.
7) На данный момент 'Dark Mode' не применим к контролам: контекстное меню, скроллы (только для Windows 10 применил через недокументированное API), диалоги (сообщения и Wait-окно).
В текущей выходящей версии оставлю плагин без возможности задания цветов. Реализую в одной из последующий версий. Предположительно, из wincmd.ini буду использовать 'Font color' и 'Background'.
9) Для контрола дерева не смогу исправить затемнение символа узла.
Также ознакомлюсь с кастомизацией вышеуказанных плагинов.
В дальнейшем, при доработке применения тем, буду руководствоваться рекомендациями ваших постов. |
|