Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных студентов на Delphi + Microsoft SQL Server
Программа тестирования (тест) - вступительные экзамены (математика, физи...
Моделирование регулировочного участка цеха на GPSS + Пояснительная записка

Модуль CRT. Текстовый вывод на экран


Используемый в ПК дисплей состоит из двух основных частей: монитора, содержащего экран, и блока управления, который называют дисплейным адаптером или просто адаптером.
Исторически первым адаптером был монохромный адаптер, имеющий скромные возможности - он позволял выводить только текстовые сообщения в одном из двух форматов: 25 строк по 40 или по 80 символов в строке. Символы выводились в прямом изображении (светлые символы на темном фоне), причем их ширина оставалась одинаковой в обоих режимах. Поэтому в режиме 40x25 была задействована только левая половина экрана.
Позднее появились адаптер HGC, который мог еще и воспроизводить графические изображения с разрешением 720x350 точек (пикселов), и цветной графический адаптер CGA, позволяющий выводить как текстовые сообщения, так и графические изображения с разрешением 320x200 или 640x350 пикселов. В текстовом режиме выводились 40x25 или 80x25 символов как в монохромном, так и в цветном изображении.
Для задания одного из возможных текстовых режимов адаптера служит процедура
TextMode (Mode: word);



Здесь Mode – код текстового режима. В качестве значения этого выражения могут использоваться следующие константы, определенные в модуле Crt (см. табл. 14.1).



По умолчанию устанавливается режим 3(СО80).
При вызове процедуры TextMode код установленного режима запоминается в стандартной переменной LastMode : word, которая может быль использована как для проверки так и для установлении текстового режима при возвращении из графического.
Write(‘Номер текстового режима’,LastMode);
TextMode (LastMode);



При работе с экраном через модуль Crt весь экран разбивается на отдельные неделимые прямоугольные элементы. Для каждого элемента можно задать цвет фона (задний план) и цвет символа (передний план). Кроме того, в случае необходимости символ можно сделать мерцающим. Вся эта информация (атрибуты символа) размещается в одном байте информации так, как показано на рис. 14.1.
Модуль CRT. Текстовый вывод на экран
На этом рисунке буквой М обозначен бит мерцания (символ мерцает, если в этом бите установлена единица), буквами Ф – биты с кодом цвета фона (биты 4-6), и буквами С - биты с кодом цвета символа (биты 0-3).
Для управления цветом символов и фона служат процедуры
TextColor (Color:Byte); и TextBackground(Color:Byte).



Параметр этих процедур может принимать следующие значения (константы определены в модуле Crt):
Параметр этих процедур может принимать следующие значения
Текущие атрибуты текста хранятся в стандартной переменной TextAtt:Byte.
Следующий пример иллюстрирует цветовые возможности ТР.
uses Crt;
const col: array [1..6] of string[16] =
(’синий’,’зеленый’,’голубой’,’красный’,
’фиолетовый’,’коричневый’);
var i:Byte;
begin
for i:=1 to 6 do {Выводим 6 сообщений
разными цветами}
begin
TextColor(i);
writeln(’Цвет ’, i, ’ - ’, col[i]);
end;
TextColor(White+Blink); {Белые мигающие символы}
writeln(’ Мерцание символов’);
{Восстанавливаем стандартный цвет}
TextColor(LightGray);
writeln;
end.



Модуль Crt позволяет не только работать со всем экраном, но и выделять в нем прямоугольные окна. Процедура Window определяет текстовое окно - область экрана, которая в дальнейшем будет рассматриваться процедурами ввода-вывода как весь экран.
Window (x1,y1,x2,y2: byte);



Здесь x1,y1,x2,y2 - координаты левого верхнего и правого нижнего угла.
Процедура window задает размеры окна на экране и помещает курсор в левый верхний угол окна.
Обращение к процедуре игнорируется, если какая-либо из координат выходит за границы экрана или если нарушается одно из условий: x2>x1 и y2>y1.
Если на экране активизировано окно, то все координаты определяются относительно границ окна, за исключением самой процедуры window (здесь координаты всегда задаются относительно границ экрана). При работе в окне координаты отсчитываются от левого верхнего угла окна.
Процедура ClrScr очищает экран или окно. После обращения к ней экран (окно) заполняется цветом фона, курсор устанавливается в левый верхний угол.
Процедура GotoXY переводит курсор в нужное место экрана или текущего окна.
GotoXY (x,y:byte);



Здесь x, y –новые координаты курсора. Координаты задаются относительно границ экрана (окна).
Обращение к процедуре игнорируется, если какая-либо из новых координат выходит за границы экрана.
Функции WhereX и WhereY служат для определения текущих координат курсора (определяются, соответственно, горизонтальная и вертикальная координаты).
Процедура HighVideo устанавливает высокую яркость символов, выводимых далее на экран (заменяет цвета 0-7 на цвета 8-15).
Процедура LowVideo устанавливает малую яркость символов, выводимых далее на экран (заменяет цвета 8-15 на цвета0-7).
Процедура NormVideo устанавливает первоначальную яркость символов, выводимых далее на экран.
Опубликовал Kest April 30 2010 15:32:48 · 0 Комментариев · 11698 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
ProLIB18
Синтаксический ан...
JanButtonsV
CaptionButton
OnlineIP
netBIOS
Animated Menus
Библия для програ...
«Философия» прогр...
Dbgridpack
Tag Игра "Пятнашк...
JanReplace
DemoEdit [Исходни...
Java Server Pages...
C++ Стандартная б...
Delphi и технолог...
Изучаем Ассемблер
C++ : библиотека ...
Программирование ...
Базы данных в Инт...

Топ загрузок
Приложение Клие... 100793
Delphi 7 Enterp... 98016
Converter AMR<-... 20298
GPSS World Stud... 17059
Borland C++Buil... 14239
Borland Delphi ... 10374
Turbo Pascal fo... 7390
Калькулятор [Ис... 6080
Visual Studio 2... 5228
Microsoft SQL S... 3674
Случайные статьи
Выдача информации ...
7.3. Запас прочности
Устраняйте причину...
Оборудование для у...
Процесс создания и...
Онлайновая инфогра...
Instagram: раскрут...
Написание собствен...
Структура сообщени...
Устройства имеют с...
Линия тренда
Игровые автоматы к...
ВВЕДЕНИЕ. МЕСТО ИМ...
Работа с базами да...
Инициализация нулем
Нерегулярные связа...
• Schema Admins (А...
Поиск картинок
Где мы находимся?
Классы-оболочки вс...
Работа с сообщением
Оставшиеся проблем...
Ценности на практике
Списки потомков + ...
Создание системы к...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?