Рассмотрим стандартные средства Graph, обеспечивающие вывод текста.
Процедура OutText (Txt: string); выводит текстовую строку Txt с текущего положения указателя.
При горизонтальном направлении вывода указатель смещается в конец выведенного текста, при вертикальном – не меняет своего положения. Строка Txt выводится в соответствии с установленном стилем и выравниванием. Если текст выходит за границы экрана, то при использовании векторных шрифтов он отсекается, а в случае стандартного матричного шрифта не выводится.
Процедура OutTextXY (X, Y: integer; Txt: string); отличается от процедуры OutText тем, что выводит текстовую строку Txt с заданного места, указанного графическими координатами X и Y.
Процедура SetTextStyle (Font, Direct, Size: word); устанавливает стиль текстового вывода на графический экран.
Здесь Font – тип шрифта, заданный его номером (кодом), Direct – код направления, Size – код размера (кегля) шрифта.
Тип шрифта может быть задан именами или значениями констант управления шрифтом модуля Graph:
Имя
константы
Код
(номер)
Файл
Содержание константы
DefaultFont
–
точечный (матричный) шрифт 8х8
TriplexFont
trip.chr
утроенный шрифт
SmallFont
litt.chr
уменьшенный шрифт
SansSeriFont
sans.chr
прямой шрифт
GothicFont
goth.chr
готический шрифт
–
scri.chr
"рукописный" шрифт
–
simp.chr
одноштриховый шрифт типа Courier
–
tscr.chr
наклонный шрифт типа Times Italic
–
lcom.chr
шрифт типа Times Roman
–
euro.chr
шрифт типа Courier увеличенного размера
–
bold.chr
крупный двухштриховый шрифт
Первые 5 констант определяют все шрифты для версий Паскаля 4.0 - 6.0. Для версии Turbo Pascal 7.0 и выше набор шрифтов был расширен и для него определены все 11 шрифтов.
Направление текста Direct задают именами или значениями констант:
const
HorizDir = 0; – направление текста слева направо,
VertDir = 1; – направление текста снизу вверх.
Размер любого шрифта может изменяться в 10 раз. Поэтому переменная Size может принимать значения от 1 до 10.
Так как процедуры OutText и OutTextXY в стандартном режиме способны выводить текст только слева направо, то направление вывода текста задают, вызвав предварительно процедуру SetTextStyle и задав в ней нужное направление вывода текста.
Процедура SetTextJustify (Horiz, Vert: word); задаёт горизонтальное Horiz и вертикальное Vert выравнивание выводимого текста по отношению к текущему положению указателя или к заданным координатам.
Выравнивание определяет: левее, правее, выше или ниже относительно текущего положения указателя или по центру будет размещаться выводимый текст. Указание выравнивания задают с помощью констант:
const
LeftText = 0; – указатель будет расположен слева от текста,
CenterText = 1; – текст будет расположен симметрично (слева и справа, сверху и снизу) относительно положения указателя,
RightText = 2; – указатель будет расположен справа от текста,
BottomText = 3; – указатель будет расположен снизу от текста,
TopText = 4; – указатель будет расположен сверху от текста.
Процедура SetUserCharSize (x1, x2, y1, y2: word); изменяет размер выводимых символов в соответствии с заданными пропорциями: x1/x2, y1/y2.
Процедура применяется только по отношению к векторным шрифтам. Для задания масштабного коэффициента необходимо задать численные значения переменным x1, x2, y1 и y2. Например, если x1 = 2, а x2 = 1, то ширина символов станет в два раза больше.
Чтобы отменить действие процедуры SetUserCharSize, следует после исчезновения надобности в ней обратиться к процедуре SetTextStyle, устанавливающей стандартные размеры символов.
Процедура GetTextSettings (var TextUnfo : TextSettingsType); возвращает текущий стиль и выравнивание текста.
Функция TextWidth (Txt: string); возвращает длину выводимой текстовой строки в пикселах. При этом учитываются текущий стиль вывода и коэффициенты изменения размеров символов, заданные процедурами SetTextStyle и SetUserCharSize соответственно.
Функция TextHeight (Txt : string): word;возвращает высоту шрифта в пикселах.
Функция InstallUserFont (FileName : string): integer;позволяет программе использовать нестандартный векторный шрифт. Функция позволяет расширить набор шрифтов, указанный ранее в таблице.
Здесь FileName – имя файла, содержащего векторный шрифт. Этот файл должен строиться по специальным правилам.
Функция InstallUserDriver (FileName: string; AutoDetectPtr: pointer): integer;включает нестандартный графический драйвер в систему BGI-драйверов. Эта функция предназначена в основном для разработчиков аппаратных средств и позволяет расширить набор стандартных графических драйверов.
Здесь FileName – имя файла, содержащего программу драйвера, AutoDetectPtr – адрес точки входа в специальную процедуру автоопределения типа дисплея, которая в числе прочих процедур должна входить в состав драйвера.
Шрифты
В модуле Graph находятся константы типов и толщины линий, а также вида, стиля и размера шрифта.