Настройка шрифтов и цветов

d

Гарантии стабильной работы шрифтов и цветов

При настройке шрифтов и цветов в проектах Delphi вы получаете следующие гарантии: гарантия обратной совместимости — если вы используете стандартные системные шрифты (Tahoma, Segoe UI, Courier New) и базовые цвета (clBtnFace, clWindow, clHighlight), они будут корректно отображаться на всех Windows-платформах, поддерживаемых Delphi 10.x и 11.x. Гарантия отсутствия сдвигов верстки — при условии, что вы не задаёте фиксированные пиксельные размеры шрифта, а используете относительные единицы (Points) и учитываете DPI-аспекты. Гарантия целостности цветовой схемы — если вы привязываете цвета к системной палитре (clSilver, clMaroon), смена темы ОС не приведёт к инверсии или исчезновению элементов.

Риски, которые могут испортить проект

Пренебрежение настройками влечёт конкретные риски:

Что проверять до выбора параметров — чтобы не жалеть

Чтобы избежать неприятностей на этапе эксплуатации, выполните три проверки перед фиксацией настроек:

  1. Проверьте целевую аудиторию. Если приложение поставляется для корпоративной среды (Windows 10/11 с одинаковыми политиками), можно смело использовать нестандартные шрифты с принудительной установкой через установщик. Если же продукт open-source — ограничьтесь стандартным набором.
  2. Протестируйте цвета на контраст. Создайте тестовый модуль, который циклически меняет TColor на каждом элементе формы. Вы убедитесь, что для строки StatusBar и TEdit одинаковый цвет clBlue делает текст нечитаемым на clNavy. Проверку следует делать при ярком солнечном свете и при ночной теме.
  3. Проверьте наследование шрифтов. Убедитесь, что ParentFont = True для всех контролов. Иначе изменение шрифта на TForm не применится к TButton — это частая причина появления разнобоя в размерах. Гарантия единообразия достигается только через цепочечное наследование.

Гарантии при использовании внешних библиотек

Если вы применяете сторонние компоненты (например, TMS или DevExpress) и настраиваете их шрифты, гарантируется: при обновлении библиотеки до новой версии шрифты не «съедут», если вы не переопределили их через style-тейги. Риск появляется, когда разработчик вручную копирует настройки из демо-проекта без проверки License-файла — некоторые шрифты защищены. Решение: всегда используйте свойство Font в дизайнере, а не присваивайте Name через код.

Гарантированный способ избежать сожалений

Самый надёжный подход — создать базовый класс TCustomForm и переопределить в нём метод Loaded. В этом методе задать шрифт и цвета однократно. Тогда риски потери настроек при наследовании форм сводятся к нулю. Пример гарантии: после смены DPI с 96 на 144 все элементы сохранят пропорции, так как вы используете ScaleBy. Проверочный сценарий: запустите приложение на ноутбуке с 125% масштабом и на проекторе с 100% — разница в читаемости должна отсутствовать.

Добавлено: 27.04.2026