Текстовый вывод в графическом режиме
Ниже приводится краткое описание функций текстового вывода в
графическом режиме:
gettextsettings | Возвращает текущий текстовый шрифт, направление, размер и выравнивание. |
outtext | Посылает строку на экран в текущую позицию (CP). |
outtextxy | Посылает текст на экран в заданную позицию. |
registerbgifont | Регистрирует компонуемый или определяемый пользователем шрифт. |
settextjustify | Устанавливает значения выравнивания текста, используемые функциями outtext и
outtextxy. |
settextstyle | Устанавливает шрифт, тип и коэффициент увеличения текущего текста. |
setusercharsize | Устанавливает соотношение между высотой
и шириной штриховых шрифтов. |
textheight | Возвращает высоту строки в элементах изображения. |
textwidth | Возвращает ширину строки в элементах
изображения. |
Графическая библиотека включает в себя матричный шрифт 8х8 и
несколько векторных шрифтов для вывода текста в графическом режиме.
матрица элементов изображения.
создается данный символ.
Преимущество использования векторных шрифтов становится очевидным, когда вы начинаете рисовать большие по размеру символы.
Поскольку векторный шрифт определяется как последовательность
векторов, при увеличении размера он сохранит хорошее разрешение и
качество изображения. И напротив, когда вы увеличиваете битовый
матричный шрифт, матрица умножается на соответствующий коэффициент масштабирования. Чем больше этот коэффициент, тем хуже становится разрешение символов. Для малых размеров такой вид шрифта
вполне удовлетворителен, однако для больших размеров вам лучше
выбрать векторный шрифт.
В графике текст выводится функциями outtext или outtextxy, а
управление его выравниванием (относительно текущей позиции) выполняет функция settextjustify. При помощи функции settextstyle
вы должны выбрать символьный шрифт, направление его размещения
(горизонтальное или вертикальное) и размер (масштаб). Узнать текущие установки вывода текстов можно при помощи функции
gettextsettings, которая возвращает текущий текстовый шрифт, выравнивание, увеличение и направление в структуре textsettings.
Функция setusercharsize позволяет модифицировать ширину и высоту
векторных шрифтов.
Если средство отсечения изображения включено, то выводимые
функциями outtext и outtextxy текстовые строки будут отсекаться
по границам графического окна. Если отсечение отключено, то тексты с матричным шрифтом, символы которых не помещаются целиком в
окне, отбрасываются полностью. В случае же векторных шрифтов не
поместившиеся тексты просто отсекаются по границе окна.
Для того, чтобы определить экранный размер данной текстовой
строки, вызовите функцию textheight (которая измеряет высоту
текста в элементах изображения) и textwidth (измеряющую его ширину в элементах изображения).
По умолчанию битовый матричный шрифт 8х8 встроен в графический пакет и поэтому всегда доступен во время выполнения. Векторные шрифты все хранятся в отдельных файлах .CHR. Они могут загружаться во время выполнения или преобразовываться в файлы .OBJ
(при помощи утилиты BGIOBJ) и затем компоноваться с вашим файлом
.EXE.
Обычно подпрограмма settextstyle загружает файл шрифта,
распределяя память для него и затем загружая с диска соответствующий .CHR-файл. В качестве альтернативы данной схеме динамической
загрузки вы можете скомпоновать файл шрифта (или несколько таких
файлов) непосредственно с выполняемым файлом программы. Для этого
сначала требуется преобразовать файл .CHR в файл .OBJ (с помощью
утилиты BGIOBJ - прочтите об этом в файле документации UTIL.DOC,
который находится на дистрибутивном диске), а затем поместить в
исходную программу вызовы registerbgifont (перед вызовом
функции settextstyle) для того, чтобы зарегистрировать данный
символьный шрифт(ы). При построении программы для всех зарегистрированных вами векторных шрифтов необходимо скомпоновать полученные файлы .OBJ.
Использование функции registerbgifont относится к сложным
методам программирования и не рекомендуется начинающим программистам. Более подробно эта функция описана в файле UTIL.DOC, который находится на дистрибутивном диске.