Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

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

Информационная система - транспортный парк на Turbo Pascal (База данных)...
Создание последовательности окон и передвижение окон по экрану на Turbo ...
Движение шарика в эллиптическои параболоиде на Delphi [OpenGL] + Блок схемы

Модуль 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 Комментариев · 11190 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Pirc
Панель "Случайное...
MP3 Архив v.2.0
Strawberry Prolog...
Tenis [Исходник н...
Print Grid
Х. М. Дейтел, П. ...
IMtale
ADVstatusbar
Blib [Исходник на...
CwstatusBar
Rss Parser
Battle.Net - мони...
PHP/MySQL для нач...
Открытие Cd-ROM'a...
Java 2. Наиболее ...
Расширенный загру...
Win-Prolog 3.618
Dnavigator
Факториал [Исходн...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97829
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5981
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
ключу Для двух исп...
Устройства
Основные сведения ...
Магистрали Gigabit...
Натяжные потолки
задача №1 [GPSS]
Нерекурсивное пост...
Имет ли первый иде...
Очереди с приоритетом
Европейская рулетк...
Последовательный к...
как спланировать, ...
Операторы
Предпосылки создан...
Canon: выбор атмос...
Установка голубого...
Типичные примеры в...
Абстрактная точка ...
Использование вспы...
Основы WinApi
убедиться, что сет...
Коллекция диалогов
Сопутствующая инфо...
• Проникновение ви...
Друзья на высоких ...
Статистика



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


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