Модуль CRT Работа с экраном. Модуль CRT. Подпрограммы
Модуль CRT Работа с экраном. Модуль CRT. Подпрограммы модуля CRT. Оформление диалога в прикладных пpогpаммах.
Модуль CRT Модуль Crt содержит константы, переменные и программы для работы с экраном в текстовом режиме: управление курсором, управление цветом, ввод информации с клавиатуры, управление звуковым сигналом.
Установка текстовых режимов TextMode (Mode); Здесь Mode – код текстового режима. В качестве значений этого выражения могут использоваться следующие константы: 0 – черно-белый режим 40x25; 1 – цветной режим 40x25; 2 – черно-белый режим 80x25; 3 – цветной режим 80x25.
Процедуры управления выводом текстовой информации LowVideo; -- устанавливает режим минимальной яркости свечения выводимых на экран символов; NormVideo; -- устанавливает режим нормальной яркости свечения выводимых на экран символов; HighVideo; -- устанавливает режим наибольшей яркости свечения выводимых на экран символов; ТextBackGround (Color); -- устанавливает цвет фона; TextColor (Color); -- устанавливает цвет выводимых символов; Параметр Соlor это выражение целого типа, соответствующее одной из констант цветов:
Работа с окнами Window(x1, y1, x2, y2); -- определяет на экране новое активное текстовое окно. x1, y1 – координаты левого верхнего угла окна, x2, y2 – координаты правого нижнего угла окна. Clrscr; -- очищает активное окно и устанавливает курсор в левый верхний угол; ClrEol; -- очищает строку активного окна от текущей позиции курсора до конца строки без изменения позиции курсора; GoToXY(x, y); -- перемещает курсор в позицию с координатами x, y в рамках активного окна;
Функции WhereX; -- возвращает x-координату текущей позиции курсора (относительно активного окна); WhereY; -- возвращает y-координату текущей позиции курсора (относительно активного окна); ReadKey; -- считывает код символа с клавиатуры. Специальные клавиши генерируют расширенные коды клавиш, состоящие из двух значений, причем первое всегда равно #0. При нажатии специальной клавиши функция возвращает сначала нулевой символ #0, а затем вторую (расширенную) часть кода.
Процедуры управления звуком Delay (Time); -- вызывает задержку выполнения программы на Time милисекунд; Sound (Hz); -- включает внутренний динамик. Hz задает частоту генерируемого динамиком сигнала в герцах. Звуковой сигнал подается до тех пор, пока не будет выключен процедурой NoSound. NoSound; -- отключает внутренний динамик.
Стандартные элементы оформления программы: заставка; ввод исходных данных; запросы на выбор нужного варианта выполнения программы (меню); вывод результатов; запросы на продолжение вычислений или прекращение работы.
Покадровое планирование Кадр 1. - Заставка Кадр 2. - Главное меню
Основные элементы 1. Построение различных рамок 2. Организация окон 3. Формирование курсора 4. Установка цвета и фона 5. Подача звуковых сигналов
Hабоp пpоцедуp для офоpмления диалога в текстовом pежиме Процедура Colors предназначена для установки цвета символов и фона. Ее удобно использовать, если на экран выводится несколько элементов с разным цветовым оформлением. Procedure Colors(cv1, cv2: byte); {установка цвета символов (cv1) и цвета фона (cv2) в текстовом режиме} begin TextColor(cv1); TextBackGround(cv2); end; {Colors}
Procedure Shadow (x1, y1, x2, y2, cv1,cv2: byte); Процедура Shadow закрашивает прямоугольную область экрана, определяемую координатами верхней левой (x1,y1) и нижней правой (x2,y2) точек, заданным цветом фона cv2 и устанавливает цвет символов cv1 для последующего вывода информации в эту область.
Procedure Shadow(x1, y1, x2, y2, cv1,cv2: byte); {заполнение цветом прямоугольного участка экрана} Var i: byte; begin Colors(cv1, cv2); For i:=y1 to y2 do begin GotoXY(x1,i); Write(‘ ‘:x2-x1+1); end; end; {Shadow}
Процедура Single ограничивает прямоугольную область экрана (x1,y1)- (x2,y2) рамкой, составленной из символов линий псевдографики.
Procedure Single(x1, y1, x2, y2, cv1, cv2: byte); const s1= #218; s2= #196; s3= #191; s4= #179; s5= #192; s6= #217; var i: byte; begin Colors(cv1, cv2); Shadow(x1+1, y1+1, x2+1, y2+1, cv1,0); Shadow(x1,y1,x2,y2,cv1,cv2); GotoXY(x1,y1); Write(s1); For i:= x1+1 to x2-1 do write(s2); write(s3); For i:=y1+1 to y2-1 do begin GotoXY(x1,i); Write(s4); GotoXY(x2,i); Write(s4); end; GotoXY(x1,y2); Write(s5); For i:=x1+1 to x2-1 do write(s2); write(s6); end; {Single}
Program Dialog; {оформление диалога в текстовом режиме } Uses Crt; Var a,f : real; Procedure Colors(cv1, cv2: byte); …………… end; {Colors} Procedure Shadow(x1, y1, x2, y2, cv1,cv2: byte); ………………….. end; {Shadow} Procedure Single(x1, y1, x2, y2, cv1, cv2: byte); ……………………. end; {Single} {----- Пpимеp использования пpоцедуp ------} Begin Colors(11,1); {основные цвета} ClrScr; { -- офоpмление ввода данных} Single(25, 8, 55, 14, 10, 3); GotoXY(29, 9); Write('Вычисление синуса числа'); GotoXY(30, 10); Write('Ввод исходных данных:'); GotoXY(32, 12); Write('Аpгумент = '); Readln(a);
{ очистка экpана для следующего этапа} Shadow(25, 8, 56, 15, 10, 1); Delay(600); { вычисления} f:=sin(a); { офоpмление вывода pезультатов} Single(25, 8, 55, 14, 14, 5); GotoXY(30, 9); Write('Результаты вычислений:'); GotoXY(32, 11); Write('Аpгумент = ',a:8:5); GotoXY(32, 12); Write('Синус = ', f:8:5); readln; { очистка экpана для следующего этапа} Shadow(25,8,56,15,10,1); { завеpшение pаботы} Shadow(25,8,55,14,15,7); GotoXY(30,10); Write('Завеpшение pаботы..'); Delay(1000); end.
moduly_crt.ppt
- Количество слайдов: 17