русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Очистка экрана и переключение режимов


Дата добавления: 2015-06-12; просмотров: 738; Нарушение авторских прав


19.2.4.1. Очистка графического экрана. Две следующие процедуры выполняют почти одинаковые действия, только первая из них {416}

USES Graph; { подключен модуль Graph } {$I initgraf.pas} { процедура инициализации } BEGIN GrInit; { инициализация графики } OutTextXY( 40, 40, { выводится имя драйвера: } 'У меня используется драйвер типа ' + GetDriverName ); ReadLn; { пауза до нажатия ввода } CloseGraph { закрытие режима графики } END.

Рис. 19.5

является как бы подмножеством второй:

ClearDevice

очищает графический экран и устанавливает указатель позиции в положение (0, 0), а процедура

GraphDefaults

кроме очистки экрана, устанавливает ряд параметров графической системы:

1) графическое окно становится равным размеру экрана;

2) восстанавливается системная цветовая палитра;

3) переназначаются цвета основных линий и фона экрана;

4) толщина и стиль линий принимаются как по умолчанию;

5) цвет и шаблон заливки геометрических фигур и замкнутых ломаных принимается как по умолчанию;

6) переустанавливается активный шрифт и его стиль. Процедура GraphDefaults неявно вызывается при инициализации графики и выполняет, no-сути, все стартовые установки графических параметров.

19.2.4.2. Переключение режимов. Оно осуществляется процедурой

SetGraphMode(GraphMode : Integer),

которая переключает систему в указанный параметром GraphMode графический режим и очищает экран монитора. При этом все дополнительные характеристики устанавливаются по умолчанию. Чтобы предостеречь от ошибок, вызванных кажущейся простотой переключения, укажем, что такие переключения возможны только в рамках текущего драйвера — иначе необходимо реинициализировать систему (рис. 19.6). {417}

USES Graph; { подключен модуль Graph } {$I initgraf.pas} { процедура инициализации } VAR mode, modeLo, modeHi : Integer; { номера режимов } BEGIN GrInit; { инициализация } GetModeRange(CurrentDriver,modeLo,modeHi); { диапазон } for mode:=modeLo to modeHi do begin { цикл по режимам } SetGraphMode( mode ); { включение режима } Line( 0, 0, 639, 479); { рисование линии } ReadLn { ожидание ввода } end; {for} CloseGraph { закрытие графики } END.

Рис. 19.6



19.2.4.3. Процедура RestoreCRTMode. При написании некоторых пакетов, использующих и графические, и текстовые режимы работы ПЭВМ, может оказаться полезной процедура RestoreCRTMode, которая возвращает систему в текстовый режим, работавший до инициализации графики. Казалось бы, уже есть процедура с подобным действием — CloseGraph. Однако после нее возврат в графический режим должен проводиться через процедуру InitGraph, что довольно сложно (см. рис. 19.1). Если же воспользоваться процедурой RestoreCRTMode, то возвращение в графику будет достаточно простым (рис. 19.7).

USES Graph; { подключен модуль Graph } {$I initgraf.pas} { процедура инициализации } CONST { константы-сообщения: } graph_str = 'Это графический режим'; text_str = 'А это текстовый режим’; graph_back = 'А это снова графический режим'; BEGIN GrInit; { инициализация графики } Line(0,0,GetMaxX,GetMaxY ); { диагональ экрана } OutTextXY(0,100,graph_str); { вывод первого сообщения } ReadLn; { пауза до нажатия ввода } RestoreCRTMode; { восстановление текстового режима } Write( text_str ); { вывод второго сообщения } ReadLn; { пауза до нажатия ввода }

Рис. 19.7 {418}

SetGraphMode(GetGraphMode); { восстановление графи- } { ческого режима } Line(0,0,GetMaxX,GetMaxY); { диагональ экрана } OutTextXY(0,100,graph_back); {вывод третьего сообщения } ReadLn; { пауза до нажатия ввода } CloseGraph { закрытие графики } END.

Рис. 19.7 (окончание)

Как видно из примера, обратное переключение осуществляется при помощи функции GetGraphMode, которая возвращает номер текущего графического режима. При работе RestoreCRTMode выгрузки графического драйвера не происходит, т.е. он остается в памяти активным. Это и есть основное преимущество процедуры RestoreCRTMode. Предупреждаем, что обратное включение графики устанавливает в исходное состояние все графические параметры модуля Graph. Кроме того, подобные переключения, к сожалению, сбрасывают изображение с экрана.



<== предыдущая лекция | следующая лекция ==>
Классификация и анализ графических режимов | Управление режимом вывода отрезков на экран


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.356 сек.