Руководство по языку B.Pascal 7

       

Начало работы


Приведем пример простой графической программы:

1 program GraphTest; 2 uses 3 Graph; 4 var 5 GraphDriver : integer; 6 GraphMode : integer; 7 ErrorCode : integer; 8 begin 9 GraphDriver := Detect; { Установить флаг: выполнить распознавание } 10 InitGraph(GraphDriver, GraphMode, 'C:\DRIVERS'); 11 ErrorCode := GraphResult; 12 if ErrorCode <> grOk then { ошибка? } 13 begin 14 Writeln('Ошибка графики: ',GraphErrorMsg(ErrorCode); 15 Writeln('Программа аварийно завершила работу...'); 16 Halt(1); 17 end; 18 Rectangle(0, 0, GetMaxX, GetMaxY); { нарисовать рамку размером в экран } 19 SetTextJustify(CenterText, CenterText); { центрирова- ние текста } 20 SetTextStyle(DefaultFont, HorizDir, 3); 21 OutTextXY(GetMaxX div 2, GetMaxY div 2, { центр экрана } 22 'Графический интерфейс фирмы Borland (BGI)'); 23 Readln; 24 CloseGraph; 25 end. { GraphTest }

Программа начинается с обращения к процедуре InitGraph, ко- торая автоматически проверяет наличие аппаратуры и загружает со- ответствующий графический драйвер (находящийся в каталоге C: DRIVERS). Если графическая аппаратура не распознана или в процес- се инициализации произошла ошибка, то на экран выводится сообще- ние об ошибке и программа прекращает работу. В противном случае вдоль краев экрана рисуется прямоугольник и в центре экрана выво- дится текст.

Плата AT&T 400 или IBM 8514 не распознается автоматически. Тем не менее, вы можете пользоваться драйвером графики AT&T путем отмены автоматической проверки, пересылки исполняемого кода драй- вера AT&T процедуре InitGraph и установки допустимого графическо- го режима. Замените 8 и 9 строку в предыдущем примере следующими тремя строками:

GraphDriver := ATT400; GraphMode := ATT400Hi; InitGraph(GraphDriver, GraphMode, 'C:\BP\BGI');

Это укажет графической системе на необходимость загрузки драйвера устройства AT&T400, расположенного в каталоге C:\BP\BGI, и установит графический режим 640 на 400.

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


1 program GraphTest; 2 uses 3 Graph; 4 var 5 GraphDriver : integer; 6 GraphMode : integer; 7 ErrorCode : integer; 8 begin 9 GraphDriver := Detect; { Установить флаг: выполнить распознавание } 10 InitGraph(GraphDriver, GraphMode, 'C:\DRIVERS'); 11 ErrorCode := GraphResult; 12 if ErrorCode <> grOk then { ошибка? } 13 begin 14 Writeln('Ошибка графики: ',GraphErrorMsg(ErrorCode); 15 Writeln('Программа аварийно завершила работу...'); 16 Helt(1); 17 end; 18 OutText('Графический режим. Нажмите <RETURN>'); 19 Readln; 20 RestoreCrtMode; 21 Write('Текстовый режим. Нажмите <RETURN>'); 22 Readln; 23 SetGraphMode(GraphMode); 24 OutText('Снова графический режим. Нажмите <RETURN>'); 25 Readln; 26 CloseGraph; 27 end. { GraphTest }

Заметим, что вызов процедуры SetGraphMode на строке 23 сбра- сывает все графические параметры (палитра, текущий указатель, ос- новной и фоновый цвета и т.д.) и им присваиваются принятые по умолчанию значения.

Вызов CloseGraph восстанавливает первоначально обнаруженный видеорежим (InitGraph) и освобождает память, используемую графи- ческим драйвером.


Содержание раздела