русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа со строками


Дата добавления: 2015-06-12; просмотров: 575; Нарушение авторских прав


15.4.3.1. Процедура ClrEOL. Эта процедура может применяться как для стирания «хвостов» строк, так и для раскраски чистого экрана в полоску максимально быстрым способом. Смысл процедуры содержится в ее названии — «очистка до конца строки». Она стирает все символы в строке, начиная с текущей позиции курсора и до правого края текущего окна. Вместо стираемых символов она ставит {334} пробелы, при этом цвет строки определяется цветовым атрибутом фона. Процедура не имеет других эффектов — даже курсор при выполнении процедуры не меняет своих координат. Программа на рис. 15.11 иллюстрирует как стирание строк, так и раскраску экрана.

USES CRT; { Примеры применения процедуры ClrEOL } VAR i : Byte; {счетчик цикла } BEGIN TextAttr := White; ClrScr; {очистка экрана } for i:=1 to 100 do Write('*ClrEOL*'); {текст на экране } Delay( 1000 ); {пауза в 1 с } TextAttr := 16*Green; { зеленый цвет фона } for i:=1 to 10 do begin { Стирание концов строк: } GotoXY( i * 8, i ); { установка курсора, } ClrEOL { собственно очистка. } end; TextAttr := 16*Blue; { синий цвет фона } for i:=12 to 25 do { Штриховка в полоску : } if Odd( i ) { если i нечетное, то } then begin GotoXY( 1, i ); ClrEOL { закрасить всю строку. } end; ReadLn; { пауза до нажатия ввода } TextAttr := White; ClrScr { восстановление цвета } END.

Рис. 15.11

15.4.3.2. Процедуры InsLine и DelLine. Эти процедуры также работают со строками. Они позволяют «прокручивать» часть текстового окна или весь экран вверх и вниз. Процедуры выполняют несложные операции: InsLine вставляет пустую строку на место той, где находится в текущий момент курсор. Все нижние строки, начиная с нее, смещаются вниз на одну строку. Самая нижняя строка, понятно, уйдет за нижнее поле окна и исчезнет. Традиционно при вводе множественной информации «с экрана» строки начинают двигаться вверх, освобождая внизу окна место для очередного запроса. Аналогично, длинные тексты пробегают по экрану снизу вверх. При помощи процедуры Insline можно организовать такую выдачу информации на экран, при которой изображение смещается сверху вниз. Для этого достаточно перед выводом очередной строки поставить в программе два оператора {335}



GotoXY( 1,1 ); InsLine;

как это сделано в примере на рис. 15.12.

USES CRT; { Пример использования процедуры InsLine } VAR i : Byte; { счетчик цикла } BEGIN ClrScr; { очистка экрана } for i:=1 to 25 do { цикл вывода строк } begin {->} GotoXY( 1, 1); InsLine; { расчистка места } WriteLn((‘Строка N ', i ); { вывод строки } Delay ( 200 ) { задержка в 200 мс } end; {for} ReadLn { пауза до нажатия } END.

Рис. 15.12

В отличие от InsLine процедура DelLine удаляет строку, в которой находится курсор, подтягивая на ее место все нижестоящие строки. При этом освобождается самая нижняя строка окна. Процедура DelLine реализует «традиционную» прокрутку всего окна или его части.

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

USES CRT; { Пример применения процедур InsLine/DelLine } VAR i, n : Byte; { переменные для циклов } BEGIN ClrScr; GotoXY(1, 2*7); { начало абзаца текста } for i:=1 to 7 do { вывод семи строк в абзац } WriteLn( 'Ins/Del Line' ); GotoXY( 1,1); { вывод курсора из абзаца } Repeat { Цикл : } for i:=1 to 7 do DelLine; { поднять абзац на 7 строк } for i:=1 to 7 do InsLine { и опустить на 7 строк } until KeyPressed; { пока не нажата какая-либо клавиша } END.

Рис. 15.13 {336}

Интересных эффектов можно достичь, применяя сочетания этих команд. На рис. 15.13 приводится простейшая программа, реализующая забавный эффект «подвижного текста», который может быть использован при написании игр или заставок к программам.



<== предыдущая лекция | следующая лекция ==>
Позиционирование курсора | Настройка цвета


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 5.894 сек.