Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Управление символьным выводом на экран



Управление символьным выводом на экран

Использование для вывода на экран только процедур Write и WriteLn дает программисту очень слабые возможности для уп­равления расположением на экране выводимого текста. Печать текста может производиться только сверху вниз, слева направо. Невозможны возврат к предыдущим строкам, стирание напеча­танного текста, изменение цвета символов и т.д.

Дополнительные возможности управления выводом на экран дают процедуры и функции модуля CRT.

Для установления связи пользовательской программы с моду­лем перед разделами описаний должна быть поставлена строка

Uses CRT

Для работы с модулем CRT необходимо познакомиться со сле­дующими понятиями: режимы экрана, координаты на экране, текстовое окно, цвет фона и цвет символа.

Режимы экрана. Вывод на экран может происходить в тексто­вом или графическом виде (на графических дисплеях). Мы здесь будем говорить только о текстовом выводе.

Дисплеи бывают монохроматические (черно-белые) и цветные. Монохроматические дисплеи могут работать только в черно-бе­лом режиме; цветные — как в черно-белом, так и в цветном. Кро­ме того, текстовые режимы различаются по количеству символь­ных строк и столбцов, умещающихся на экране.

В модуле CRT каждый режим имеет определенный номер, за которым закреплено символическое имя (описанная константа). Для установки режима экрана используется процедура

TextMode(<номер режима>)

При обращении к процедуре номер режима может задаваться как числом, так и именем соответствующей константы. Напри­мер, два оператора

TextMode(1); TextMode(CO40);

эквивалентны.

Как правило, исходный режим экрана, устанавливаемый по умолчанию, — СО80 (на цветных дисплеях).

Координаты позиции. Каждая символьная позиция на текстовом экране определена двумя координатами (X, Y). Координата Х - п­позиция в строке. Для крайней левой позиции в строке Х= 1. Ко­ордината Y— номер строки, в которой находится символ. Строки нумеруются сверху вниз.

Например, в режиме 80 х 25 символ в верхнем левом углу име­ет координаты (1; 1); символ в нижнем правом углу — (80; 25); символ в середине экрана — (40; 13).

Для установления курсора на экране в позицию с координата­ми (X, Y) в модуле CRT существует процедура:

GoToXY(X,Y)

Здесь координаты курсора задаются выражениями типа Byte. Вот пример программы, которая очищает экран и выставляет в центре экрана символ *:



Uses CRT;

Begin

ClrScr;

GoToXY(40, 13);

Write('*')

End.

Используемая здесь процедура ClrScr производит очистку экрана.

Текстовое окно. Прямоугольное пространство на экране, в кото­рое производится вывод символов, называется текстовым окном. Положение окна определяется координатами верхнего левого угла и нижнего правого угла прямоугольника. Если окно занимает весь экран, то в режиме 80 х 25 его координаты (1; 1) — (80; 25). Таким является исходное окно. Изменить положение и размер текстового окна можно с помощью процедуры

Window(XI,Y1,Х2,Y2)

Здесь аргументы — величины типа Byte; (XI, Y1) —коорди­наты верхнего левого угла, (Х2, Y2) — координаты правого ниж­него угла окна. После определения окна попытки вывода симво­лов за его пределы оказываются безрезультатными. Повторное об­ращение к процедуре window с новыми параметрами отменяет предыдущее назначение.

Управление цветом. На современных цветных дисплеях типа EGA, VGA, SVGA в текстовом режиме экрана можно использо­вать 16 цветов.

В модуле CRT объявлены константы, имена которых представ­ляют собой английские названия цветов, а соответствующие им значения — порядковые номера этих цветов.

Процедура назначения цвета фона:

TextBackGround(Color)

Здесь аргумент — величина типа Byte, задающая номер цвета. Процедура назначения цвета символа:

TextColor(Color)

Если цвет фона назначается до очистки текстового окна, то после очистки окно заливается этим цветом. Если фон устанавли­вается после очистки экрана, то чистое окно будет иметь черный цвет (по умолчанию), а назначенный цвет фона будет устанавли­ваться в тех позициях, в которые выводятся символы.

Вот пример программы, в которой по очереди откроются че­тыре окна, и каждое из них будет залито своим фоновым цветом:

Uses CRT;

Begin

Window(1,1,40,12); TextBackGround(White); ClrScr;

Window(41,1,80,12);

TextBackGround(Red); ClrScr;

Window(1,13,40,25);

TextBackGround(LightRed); ClrScr;

Window(41,13,80,25);

TextBackGround(Green); ClrScr;

End.

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

Uses CRT;

Var I: Byte;

Begin

TextBackGround(White);

ClrScr;

GoToXY(1, 12);

For I:=0 To 14 Do

Begin

TextColor(I);

Write(1:5);

End

End.

Кратко опишем еще несколько процедур управления текстовым экраном из модуля CRT. Все эти процедуры не имеют параметров.

Процедура cirEOL. Стирает часть строки от текущей позиции курсора до конца этой строки в окне. При этом положение курсо­ра не меняется.

Процедура DelLine. Уничтожает всю строку с курсором. Ниж­ние строки сдвигаются на одну вверх.

Процедура insLine. Вставляет пустую строку перед строкой, в которой стоит курсор.

Процедуры LowVideo, NormVideo, HighVideo. Устанавлива­ют режимы пониженной, нормальной и повышенной яркости сим­волов соответственно.

Весьма полезной является функция KeyPressed из модуля CRT. При исполнении этой функции происходит опрос клавиатуры и определяется, не нажата ли какая-нибудь клавиша. В результате функция выдает логическое значение True, если нажата любая клавиша, и значение False в противном случае. Часто эту функ­цию используют для организации задержки окна результатов на экране (после выполнения программы Турбо Паскаль вызывает на экран окно редактора). Перед концом программы записывается следующий оператор:

Repeat Until KeyPressed;

Это пустой цикл, который «крутится на месте» до нажатия ка­кой-либо клавиши. В это время на экране окно результатов. После нажатия на клавишу значение KeyPressed станет равно True, цикл завершится, будет выполнен переход на метку End и на эк­ран вернется окно редактора. Этот прием можно использовать для задержки выполнения программы в любом ее месте.

В приведенную выше программу получения на экране четырех разноцветных окон внесем следующее дополнение: после уста­новки четырехцветного экрана выполнение программы останав­ливается и изображение сохраняется; затем после нажатия на любую клавишу экран возвращается в исходный режим (80 х 25, черный фон, белые символы). Для этого перед концом программы нужно добавить следующее:

Repeat Until KeyPressed;

Window(1,1/80,25);

TextBackGround(Black);

ClrScr;


Дата добавления: 2015-08-29; просмотров: 38 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
©2013 Национальный правовой Интернет-портал Республики Беларусь 6 страница | Анатомически в головном мозге выделяют:

mybiblioteka.su - 2015-2024 год. (0.009 сек.)