Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Текущий указатель

Понятие текущего указателя используется во многих графичес-

ких системах. Понятие текущего указателя аналогично понятию кур-

сора для текстового режима, за исключением того, что текущий ука-

затель невидим.

Write('ABC');

В текстовом режиме предшествующий оператор Write оставит

курсор в колонке, непосредственно следующим за буквой C. Если

буква C была введена в колонке 80, то курсор перейдет на колонку

1 следующей строки. Если буква c была введена в позиции 80 строки

25, то произойдет пролистывание (прокрутка) экрана вверх на 1

строку и курсор будет находится в 1 позиции 25 строки.

MoveTo(0,0);

LineTo(20,20)

В графическом режиме данный оператор LinеТо оставит текущий

указатель в последней заданной точке (20,20). Если действует ре-

жим отсечения, то реально выводимая прямая будет отсечена до те-

кущей точки. Заметим, что текущий указатель никогда не отсекает-

ся.

Команда МоvеТо является эквивалентом команды GotoXY. Единс-

твенное ее назначение - это перемещение текущего указателя. Пере-

мещение текущего указателя может использоваться только в следую-

щих командах, использующих текущий указатель: MoveTo, InitGraph,

MoveRel, LineTo, LineRel, OutText, SetGraphMode, ClearDevice,

SetViewPort и ClearViewPort. Последние 5 из них перемещают теку-

щий указатель в точку (0,0).

Текст

В графическом режиме для вывода текста используется шрифт с

растром 8х8 и несколько векторных шрифтов. Растровый символ зада-

ется с помощью матрицы элементов изображения. Векторный шрифт за-

дается рядом векторов, которые указывают графической системе, как

рисовать шрифт.

Преимущество использования векторных шрифтов становится оче-

видным, когда вы начинаете рисовать большие символы. Поскольку

штриховой шрифт задается векторами, то при увеличении шрифта ка-

чество и разрешение остаются, тем не менее, хорошими.

Когда увеличивается растровый шрифт, то матрица умножается

на масштабный коэффициент, а когда этот масштабный коэффициент

увеличивается, разрешение у символов становится более грубым. Для

маленьких шрифтов растровый шрифт должен быть достаточно приемле-

мым, но для больших шрифтов вы, вероятно, захотите выбрать век-

торный шрифт.

Выравнивание графического текста управляется процедурой

SetTextJustify. Масштабирование и выбор шрифта осуществляется с

помощью процедуры SetTextStyle. Графический текст выводится с по-

мощью процедур ОutText или ОutTextХY. Запрос о текущих установ-

ленных для текста параметрах выполняется с помощью обращения к

процедуре GetTextSettings. Векторные шрифты хранятся каждый в от-

дельном файле на диске и должны присутствовать там во время рабо-

ты (при вызове процедуры SetTextStyle). Размер векторного шрифта

можно настроить с помощью процедуры SetUserCharSize. Файлы шриф-

тов (которые имеют расширение .CHR) могут загружаться с диска ав-

томатически модулем Graph, или их можно компоновать с программой

пользователя или загружать и "регистрировать" с помощью модуля

Graph.

Для преобразования файла шрифта (или любого другого предназ-

наченного для этой цели двоичного файла данных) в файл .OBJ, ко-

торый можно компоновать с модулем или программой с помощью дирек-

тивы компилятора $L в Borland Pascal предусмотрена специальная

утилита BINOBJ.EXE. При этом становится возможным поместить все

файлы шрифтов в выполняемый файл .EXE (см. комментарии в начале

примера программы BGILINK.PAS на дистрибутивном диске).

Соседние файлы в предмете Программирование на Pascal