Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Grafika_Turbo-Pascal.doc
Скачиваний:
24
Добавлен:
08.03.2015
Размер:
362.5 Кб
Скачать

Управление курсором.

Для возможности вывода информации в любую позицию экрана определена процедура перемещения курсора в позицию 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]