Учись программированию на C++ Builder бесплатно!
  • Главная
  • Шрифты текстов в компонентах С++ Builder
Шрифты текстов в компонентах С++Builder
Содержание[Скрыть]

В С++ Builder шрифт текста и надписей компонентов управляется свойством Font, который имеет гибкие настройки. Свойство ParentFont компонентов при значении true заимствует шрифт родительского компонента формы или панели. Используя в приложении ParentFont и ParentColor, позволяет обеспечить «единство» компонентов в интерфейсе приложения.

При создании в C++ Builder приложения, по умолчанию свойству Font устанавливается шрифт MS Sans Serif размером 8, а константа Charset (множества символов) принимает значение DEFAULT_CHARSET, т.е. выбирается указанный шрифт по имени и размеру. В случае прописанного шрифта нет в системе, то Windows заменит шрифт на другой. Свойство Font позволяет задать для компонентов, помимо шрифта, атрибуты: полужирный, подчёркнутый, курсив и т.д.

При изменении имени шрифта в приложении следует это делать осторожностью. Во время разработки приложения шрифт выбирается из списка установленных в системе программиста, что с большей долей вероятности, такого шрифта может не оказаться у пользователя приложения. В этом случае при запуске приложения пользователь увидит абракадабру вместо русского текста. Об этом следует позаботиться и с приложением поставлять шрифты с инструкцией как его установить или же запрограммировать автоматическую проверку на отсутствие шрифта и установку его в систему или приложение для корректного отображения текста.

Пример проверки шрифта

При запуске приложения можно проверить систему пользователя на существование шрифта. Если шрифт отсутствует, то вывести сообщение о необходимости установить шрифт.

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
if(Screen->Fonts->IndexOf("Arial"))
	ShowMessage("Шрифт Arial есть в системе.");
else
	{
	ShowMessage("Нужно установить шрифт Arial");
	Close();
	}
}

Код проверяет наличие шрифта Arial. В случае его наличия выводится сообщение и приложение запускается. В противном случае приложение сообщает о необходимости установить соответствующий шрифт и прекращает дальнейший запуск.

Пример установки шрифта

Можно предоставить пользователю самому устанавливать любой шрифт, имеющийся в системе Windows. Окно выбора шрифта и его атрибутов позволяет компонент FontDialog. Он является скрытым, не отображается на форме и довольно прост в настройке.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(FontDialog1->Execute())
Button1->Font->Assign(FontDialog1->Font); //Меняется шрифт и атрибуты кнопки
}
Поделиться