Студопедия Главная Случайная страница Обратная связь

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

Теоретические сведения. Модуль Crt содержит функции и процедуры, полезные при выводе на экран





Модуль Crt содержит функции и процедуры, полезные при выводе на экран. Например, при помощи процедур библиотеки можно задать цвет выводимых символов и цвет фона, на котором они будут выводиться, вывести текст в нужной точке экрана.

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

Инструкции write и writeln выводят информацию, начиная с той позиции экрана, в которой находится курсор. Положение курсора на экране определяется номером строки и номером позиции в строке, которые можно рассматривать как координаты курсора. В стандартном режиме на экране могут быть отображены до 25 строк текста длиной до 80 символов. Поэтому горизонтальная координата (х), определяющая номер позиции в строке, может меняться от 1 до 80, а вертикальная координата (у), определяющая номер строки, может меняться от 1 до 25. за начало координат принят левый верхний угол экрана. Левая верхняя точка экрана имеет координаты (1, 1), правая нижняя (80, 25).

 

 

(1, 1)

Х

 
 

 

 


(80, 25)

 
 


У

 

Если нужно вывести текст, начиная с определенной позиции экрана, то перед выполнением инструкции вывода надо установить курсор в эту позицию. Это можно сделать с помощью процедуры GoToXY, инструкция вызова которой в общем виде выглядит так: GoToXY (34, 13);

Write (‘Turbo Pascal’);

выводят сообщение примерно в середине экрана.

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

Procedure Frame (1: integer; t: integer; w: integer; h: integer);

{l, t – координаты верхнего левого угла, w – ширина рамки, h – высота рамки}

var

x, y: integer;

i: integer;

c1, c2, c3, c4, c5, c6: char; {символы, из которых рисуется рамка}

begin

c1: =chr (218); {символ верхнего левого угла}

{функция chr возвращает символ, номер которого указан при вызове функции}

c2: =chr (196); {символ горизонтальной линейки}

c3: =chr (191); {символ правого верхнего угла}

c4: =chr (179); {символ вертикальной линейки}

c5: =chr (192); {символ левого нижнего угла}

c6: =chr (217); {символ правого нижнего угла}

GoToXY (1, t);

write (c1);

for i: =1to w-2 do {символ верхней границы рамки}

write (c2);

write (c3);

y: =t+1;

x: =1+w-1;

for i: =1to h-2 do {символы левой и правой границ}

begin

GoToXY (1, y);

write (c4);

GoToXY (x, y);

write (c4);

y: =y+1;

end;

GoToXY (1, y);

write (c5);

for i: =1to w-2 do {символы нижней границы}

write (c2);

write (c6);

end;

Управление цветом.

Используя процедуры TextColor и TextBackGround, можно задать цвет символов и цвет фона для текста, выводимого инструкциями write и writeln. Каждый цвет кодируется целым числом, которому соответствует именованная константа.

 

Цвет Код Константа
Черный   Black
Синий   Blue
Зеленый   Green
Бирюзовый   Cyan
Красный   Red
Сиреневый   Magenta
Коричневый   Brown
Белый (светло-серый)   Light Gray
Серый   Dark Gray
Голубой   Light Blue
Светло-зеленый   Light Green
Светло-бирюзовый   Light Cyan
Светло-красный (алый)   Light Red
Светло-сиреневый   Light Magenta
Желтый   Yellow
Белый (яркий)   White

 

Процедура TextColor (цвет) устанавливает цвет символов, а процедура TextBackGround (цвет) – цвет фона выводимого теста. В качестве параметра Цвет для процедуры TextColor можно использовать код цвета или именованную константу в диапазоне от 0 до 15, а для процедуры TextBackGround – в диапазоне от 0 до 7.

Например, после выполнения инструкций

TextColor (LightGray);

TextBackGround (Blue);

Инструкции write и writeln будут выводить текст светло-серым цветом на синем фоне.

Установленные цвета символов и фона называются текущими. Инструкции вывода используют текущие цвета символов и фона до тех пор, пока они не будут изменены.

Например, следующие инструкции

TextBackGround (Blue);

TextColor (15);

write (‘1’);

TextColor (7);

Writeln (‘Вывод на экран’);

NextColor (7);

Writeln (‘Вывод на принтер’);

Выводят на экран фрагмент меню. Названия пунктов меню выводятся на синем фоне светло-серым цветом, а номера пунктов меню – ярко-белым.

Информация о текущем цвете символов и фона хранится в глобальной переменной TextAttr (атрибуты текста) типа byte. Значение переменной TextAttr можно использовать для того, чтобы перед завершением работы программа установила свои цвета. Например, следующая программа в начале своей работы сохраняет текущие установки цвета, а в конце – восстанавливает старые значения.

Program p;

Uses Crt;

Var

oldTextAttr: byte;

begin

{сохраним цвет символов и фона}

oldTextAttr: TextAttr;

{установим свои цвета}

TextBackGround (Red);

TextColor (White);

{инструкции программы}

{восстановим цвет символов и фона}

TextArrt: = oldTextAttr;

End.

Помимо использования процедур TextColor и TextBackGround для установки цвета символов и цвета фона, установить атрибуты текста можно непосредственным присвоением значения переменной TextAttr, определяемого по формуле: НомерЦветаФона*16+НомерЦветаСимволов.

Например, чтобы установить белый цвет символов на красном фоне, переменной TextAttr надо присвоить значение 79 (79=4*16+15).

В качестве значения, присваиваемого переменной TextAttr, удобно использовать двузначную шестнадцатеричную константу, старший разряд которой определяет номер цвета фона, младший – номер цвета символов. Например, синий цвет фона обозначается числом 1, желтый цвет обозначается десятичным числом 14, которому соответствует шестнадцатеричная цифра Е. Таким образом, желтый цвет на синем фоне кодируется шестнадцатеричным числом 1Е. Так как в изображении шестнадцатеричных чисел используются латинского алфавита от А до F, то для того чтобы компилятор различал шестнадцатеричные числа и имена переменных, перед шестнадцатеричным числом ставится символ $. Так, инструкция TextAttr: =$1E; задает синий фон (номер цвета 1) и желтый цвет символов (номер цвета 14 в десятичной форме, и Е – в шестнадцатеричной).

Если к сообщению надо привлечь особое внимание, то можно установить его атрибуты так, что оно будет мигать. Чтобы это сделать, надо к константе, определяющей атрибуты, прибавить 128. Следующая последовательность инструкций выводит мигающее предупреждающее сообщение.

TextAttr: =$1E+128;

Write (‘Ошибка ввода данных’);

 







Дата добавления: 2014-11-10; просмотров: 1170. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия