- •Введение
- •Управление экраном в текстовом режиме
- •Установка текстового режима
- •Установка цвета и фона
- •Управление курсором.
- •Управление строками.
- •Управление звуком.
- •Текстовые окна.
- •Использование клавиатуры.
- •Организация меню пользователя. Элементы псевдографики.
- •Виды меню
- •Использование буфера экрана.
- •Управление экраном в графическом режиме.
- •Стандартные подпрограммы для работы в графическом режиме
- •Установка графического режима.
- •InitGraph (var Driver,Mode:integer; DriverPath:string) -
- •Координаты, графические окна.
- •Выбор цвета, стиля заполнения.
- •Геометрия
- •Точки и линии.
- •Многоугольники
- •Дуги, окружности, эллипсы
- •Вывод текста
- •Сохранение и выдача изображений
- •Дополнительные стандартные подпрограммы для работы в графическом режиме. Анализ графического режима
- •Установки графических окон, страницы
- •Выбор палитры, заполнения
- •Геометрия
- •Установки вывода текста.
- •Организация библиотек пользователя
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Приложение 1. Кодировочная таблица пэвм.
- •Приложение 2. Константы графического режима.
Управление курсором.
Для возможности вывода информации в любую позицию экрана определена процедура перемещения курсора в позицию X,Y относительно текущего окна:
GotoXY(x,y:byte); (x-столбец, y-строка)
Вызов процедуры игнорируется при значениях X и Y выходящих за пределы окна. Максимальное значение Х и Y для данного режима можно получить с помощью функций MaxX и MaxY типа byte. При выводе символов или другой информации по мере необходимости происходит сдвиг или прокрутка изображения т.е. все строки перемещаются на одну позицию вверх, а снизу добавляется пустая строка. Прокрутка изображения происходит при выводе информации в последнюю строку операторами writeln и readln или когда выводимая строка не умещается в последней строке текстового окна. Например попытка вывода символа в нижний правый угол окна вызовет прокрутку :
GotoXY(80,25); write('*');
при этом на экране символ '*' окажется не в 25, а в 24 строке.
Функции WhereX:byte и WhereY:byte возвращают координаты соответственно X и Y текущей позиции курсора. Данные функции используются при работе с пользователем в режиме диалога, например при редактировании текстов.
Процедуры вывода информации на экран по разному изменяют местоположение курсора:
процедура GotoXY перемещает курсор в точку с координатами X и Y;
оператор write помещает курсор сразу за последним выводимым символом;
операторы read, readln, writeln переводят курсор в первый столбец строкой ниже;
процедуры ClrScr, TextMode, Window помещают курсор в точку (1,1) текущего окна.
Задание.
Вывести на экран график функции y=sin(x)+cos(x), для x=[0,PI] c шагом h=0.1. Ось Х расположить по центру экрана, с направлением движения слева направо. Точки графика вывести в цвете, используя символ '*';
Управление строками.
Для управления строками в модуле Crt определены процедуры:
ClrEol - очистка текущей строки от позиции курсора до конца строки.
InsLine - вставка пустой строки. Все строки, начиная с текущей смещаются на одну позицию вниз, при этом последняя строка становится невидимой.
DelLine - удаление текущей строки. Все строки ниже текущей поднимаются вверх на одну позицию. В нижнюю часть окна добавляется пустая строка.
ClrScr - очистка и заполнение текущего окна фоновым цветом. При этом курсор помещается в верхний левый угол окна т.(1,1). Данную процедуру обычно используют в начале работы программы.
Указанные процедуры производят заполнение фона цветом, установленным в TextBackGround.
Пример.
Uses Crt;
Var i:1..25;
oldmode:word;
Begin
oldmode:=LastMode;
TextBackGround(Yellow); { заполнение экрана
ClrScr; желтым фоном }
{ вставим 25 строк с указанием их номеров }
for i:=1 to 25 do
begin
GotoXY(1,1);
InsLine; { вставка пустой строки }
write(' Строка номер : ',i);
Delay(200);
end;
readln;
{ а теперь удалим все строки, начиная с первой }
GotoXY(1,1);
for i:=1 to 25 do
begin
DelLine; { удаление текущей строки }
Delay(200);
end;
TextMode(oldmode);
End.
Задание.
Выведите по центру экрана 3 текстовых строки "вставка","текущей","строки". Произведите заменуу строки "текущей" на "новой", используя процедуры DelLine и InsLine.