232______________________________________________Глава 4

текущий цвет фона окон, d'MenuText — текущий цвет текста меню и т.д. Полный
список всех констант и их описание, а также способ конструирования любого дру-
гого статического цвета вы можете найти в справочной части книги в главе 15 в
разделе «Color».

Хороший стиль программирования ————————————————————————

Используйте, как правило, только системные цвета. Это позволит пользователю средствами
Windows установить наиболее приемлемую для себя гамму. Исключение из этого правила
можно обычно делать только для белого и черного цветов, которые иногда целесообразно
задавать статическими.

Статические цвета вы выбираете сами и они будут оставаться неизменными
при работе приложения на любом компьютере. Это не очень хороню, поскольку по-
льзователь не сможет адаптировать вид вашего приложения к своим потребно-
стям. При выборе желательной ему цветовой схемы пользователь может руковод-
ствоваться самыми разными соображениями: начиная с практических (например,
он может хотеть установить черный фон, чтобы экономить энергию батареи), и
кончая эстетическими (он может предпочитать, например, шкалу оттенков серого,
потому что не различает цвета). Все это он не может делать, если вы задали в при-
ложении статические цвета. Но уж если по каким-то соображениям вам надо их
задать, старайтесь использовать базовый набор из 16 цветов. Если вы попытаетесь
использовать 256 (или, что еще хуже, 16 миллионов) цветов, это может замедлить
работу'вашего приложения или оно будет выглядеть плохо на машине пользовате-
ля с 16 цветами. К тому же подумайте (а, как правило, это надо проверить и экспе-
риментально), как будет выглядеть ваше приложение на монохромном дисплее.

Исходя из изложенных соображений, везде, где это имеет смысл, следует ис-
пользорать для своего приложения палитру системных цветов. Это те цвета, кото-
рые устанавливает пользователь при настройке Windows. Когда вы создаете новую
форму или размещаете на ней компоненты, C++Builder автоматически присваива-
ет им цвета в соответствии со схемой цветов, установленной в Windows. Конечно,
вы будете менять эти установки по умолчанию. Но если при этом вы используете
соответствующие константы системных цветов, то, когда пользователь изменит
цветовую схему оформления экрана Windows, ваше приложение также будет соот-
ветственно меняться и не будет выпадать из общего стиля других приложений.

Единству цветового решения отдельных частей экрана способствует также ис-
пользование свойства ParentColor. Если это свойство установлено в true, то цвет
компонента соответствует цвету содержащего его контейнера или формы. Это обес-
печивает единство цветового решения окна и, кроме того, позволяет программно
изменять цвет сразу группы компонентов, если вы, например, хотите, чтобы их
цвет зависел от текущего режима работы приложения. Для такого группового из-
менения достаточно изменить только цвет контейнера.

4.1.4 Шрифты текстов

Шрифт надписей и текстов компонентов C++Builder задается свойством Font,
имеющим множество подсвойств. Кроме того, в компонентах имеется свойство Ра-
rentFont. Если это свойство установлено в true, то шрифт данного компонента бе-
рется из свойство Font его родительского компонента — панели или формы, на ко-
торой расположен компонент. Использование свойств ParentFont и ParentColor
помогает обеспечить единообразие отображения компонентов в окне приложения.

По умолчанию для всех компонентов C++Builder задает имя шрифта MS Sans
Serif, размер — 8, константу множества символов DEFAULT_CHARSET. Послед-
нее означает, что шрифт выбирается только по его имени и размеру. Если описан-
ный шрифт недоступен в системе, то Windows заменит его другим шрифтом.