Шаг 79.
Visual Prolog.
Шрифты

    На этом шаге мы рассмотрим работу со шрифтами.

    У каждого окна есть шрифт, который используется при выводе текста. Этот шрифт может быть изменен вызовом предиката win_SetFont.

    Пользователь может выбрать шрифт в стандартном диалоговом окне настройки шрифтов. Также шрифт можно создать, задав семейство, стиль и размер шрифта и вызвав предикат font_Create.

    Шрифт - это бинарный домен VPI. Это значит, что он может быть сохранен в файле или внешней базе данных и использован позже. У нас нет возможности прямо проверить настройки шрифта, но при помощи предиката font_GetAttrs можно получить некоторую информацию.

Создание шрифта

   Font=font_Create(FontFamily,StyleFlags,Size)

    Этот предикат возвращает структуру шрифта. Возможные семейства шрифтов:

   ff_System;
   ff_Fixed;
   ff_Times;
   ff_Helvetica.

    Флаги стиля шрифта:

   fs_Bold;
   fs_Italic;
   fs_UnderLine.

    Параметр StyleFlags - это список, поэтому можно определить один или больше стилей. Пустой список создаст обычный шрифт.

Выбор шрифта

    Для установки нового шрифта в окне используется предикат win_SetFont/2.

   win_SetFont(Window,Font)

    Для изменения параметров шрифта используется предикат:

   font_SetAttrs(Font,FontStyle,FontSize)

   

Получение информации о шрифте

    Размер текущего шрифта можно получить, вызвав предикат win_GetFontMetrics/4.

   win_GetFontMetrics(Window,Leading,Ascent,Descent)

    Здесь Window - это дескриптор окна, Leading - дополнительное расстояние, которое приложение добавляет между строками. Ascent - расстояние между базовой линией и верхним краем символа. Descent - расстояние между нижним краем символа и базовой линией.

    Стиль текущего шрифта можно получить, вызвав предикат font_GetAttrs/3.

   FontName=font_GetAttrs(Font,StyleFlags,FontSize)

    Возвращаемые параметры: StyleFlags - список, FontSize - целочисленное значение, FontName - название шрифта.

    Текущий шрифт окна можно получить, вызвав предикат:

   Font=win GetFont(Window)

    На следующем шаге мы рассмотрим работу с цветом.




Предыдущий шаг Содержание Следующий шаг