ВУЗ:
Составители:
Рубрика:
81
ний угол экрана имеет координаты (1,1), горизонтальная координата увели-
чивается слева направо, а вертикальная сверху вниз.
В следующем примере иллюстрируется вывод достаточно длинного
сообщения в двух разных окнах.
Uses CRT;
Var
k: integer;
begin
{создаем левое окно – желтые символы на синем фоне}
TextBackGround (blue);
Window (5, 2, 35, 17);
TextColor (Yellow);
For k:= 1 to 100 do
Write (
′Нажмите клавишу Enter…′);
ReadLn; {ждем нажатия клавиши Enter}
ClrScr; {очищаем окно}
{Создаем правое окно – белые символы на красном фоне}
TextBackGround (red);
TextColor (White);
Window (40, 2, 70, 17);
For k:= 1 to 100 do
Write (
′Нажмите клавишу Enter…′);
ReadLn;
TextMode (CO80) {Сбрасываем все установки}
end.
Обращение к процедуре Window игнорируется, если какая-нибудь из ко-
ординат выходит за границы экрана или если нарушается одно из условий:
X2>X1 и Y2>Y1. Каждое новое обращение к Window отменяет предыдущее
определение окна. Границы текущего окна запоминаются в двух глобальных
переменных модуля CRT: переменная WindMin типа Word хранит X1 и Y1
(X1 – в младшем
байте), а переменная того же типа WindMax – X2 и Y2 (X2 –
в младшем байте). При желании можно изменять их нужным образом без об-
ращения к Window. Например, вместо оператора
Window (40, 2, 70, 17);
можно было бы использовать два оператора
WindMin := 39 + (1 shl 8);
WindMax := 69 + (16 shl 8);
(в отличие от обращения к Window координаты, хранящиеся в переменных
WindMin и WindMax, соответствуют началу отсчета 0,0).
82
6. Процедура GotoXY переводит курсор в нужное место экрана или те-
кущего окна. Заголовок процедуры:
Procedure GotoXY (X, Y:Byte);
Здесь X,Y – новые координаты курсора. X-столбец, Y-строка. Коор-
динаты задаются относительно границ экрана (окна), т. е. оператор
GotoXY (1,1);
Означает перевести курсор в левый верхний угол экрана (или окна, ес-
ли к тому моменту на экране определено окно). Обращение к
процедуре
игнорируется, если новые координаты выходят за границы экрана (окна).
7. Функции WhereX и WhereY. С помощью этих функций типа Byte
можно определить текущие координаты курсора: WhereX возвращает его го-
ризонтальную, а WhereY – вертикальную координаты.
Три следующие процедуры без параметров могут оказаться полезными
при разработке текстовых редакторов.
8. Процедура ClrEOL стирает часть строки от текущего положения
курсора до правой границы окна (экрана). Положение курсора не меняется.
9. Процедура DelLine уничтожает всю строку с курсором в текущем
окне (или на экране, если окно не создано). При этом все строки ниже уда-
ляемой (если они есть) сдвигаются вверх на одну строку.
10. Процедура InsLine вставляет строку: строка с курсором и все
строки ниже ее сдвигаются вниз на одну строку; строка, вышедшая за ниж-
нюю границу окна (экрана), безвозвратно теряется; текущее положение
курсора не меняется.
11. Процедуры LowVideo, NormVideo и HighVideo. С помощью этих
процедур без параметров можно устанавливать соответственно пониженную,
нормальную и повышенную яркость символов. Например:
Uses CRT;
begin
LowVideo;
WriteLn (
′Пониженная яркость′);
NormVideo;
WriteLn (
′Нормальная яркость′);
HighVideo;
WriteLn (
′Повышенная яркость′);
end.
На практике нет разницы между пониженной и нормальной яркостью
изображения.
ний угол экрана имеет координаты (1,1), горизонтальная координата увели- 6. Процедура GotoXY переводит курсор в нужное место экрана или те-
чивается слева направо, а вертикальная сверху вниз. кущего окна. Заголовок процедуры:
В следующем примере иллюстрируется вывод достаточно длинного Procedure GotoXY (X, Y:Byte);
сообщения в двух разных окнах. Здесь X,Y новые координаты курсора. X-столбец, Y-строка. Коор-
Uses CRT; динаты задаются относительно границ экрана (окна), т. е. оператор
Var GotoXY (1,1);
k: integer;
Означает перевести курсор в левый верхний угол экрана (или окна, ес-
begin
{создаем левое окно желтые символы на синем фоне} ли к тому моменту на экране определено окно). Обращение к процедуре
TextBackGround (blue); игнорируется, если новые координаты выходят за границы экрана (окна).
Window (5, 2, 35, 17); 7. Функции WhereX и WhereY. С помощью этих функций типа Byte
TextColor (Yellow); можно определить текущие координаты курсора: WhereX возвращает его го-
For k:= 1 to 100 do
ризонтальную, а WhereY вертикальную координаты.
Write (′Нажмите клавишу Enter ′);
ReadLn; {ждем нажатия клавиши Enter} Три следующие процедуры без параметров могут оказаться полезными
ClrScr; {очищаем окно} при разработке текстовых редакторов.
{Создаем правое окно белые символы на красном фоне} 8. Процедура ClrEOL стирает часть строки от текущего положения
TextBackGround (red); курсора до правой границы окна (экрана). Положение курсора не меняется.
TextColor (White);
Window (40, 2, 70, 17); 9. Процедура DelLine уничтожает всю строку с курсором в текущем
For k:= 1 to 100 do окне (или на экране, если окно не создано). При этом все строки ниже уда-
Write (′Нажмите клавишу Enter ′); ляемой (если они есть) сдвигаются вверх на одну строку.
ReadLn; 10. Процедура InsLine вставляет строку: строка с курсором и все
TextMode (CO80) {Сбрасываем все установки}
строки ниже ее сдвигаются вниз на одну строку; строка, вышедшая за ниж-
end.
нюю границу окна (экрана), безвозвратно теряется; текущее положение
Обращение к процедуре Window игнорируется, если какая-нибудь из ко- курсора не меняется.
ординат выходит за границы экрана или если нарушается одно из условий: 11. Процедуры LowVideo, NormVideo и HighVideo. С помощью этих
X2>X1 и Y2>Y1. Каждое новое обращение к Window отменяет предыдущее процедур без параметров можно устанавливать соответственно пониженную,
определение окна. Границы текущего окна запоминаются в двух глобальных нормальную и повышенную яркость символов. Например:
переменных модуля CRT: переменная WindMin типа Word хранит X1 и Y1 Uses CRT;
(X1 в младшем байте), а переменная того же типа WindMax X2 и Y2 (X2 begin
LowVideo;
в младшем байте). При желании можно изменять их нужным образом без об-
WriteLn (′Пониженная яркость′);
ращения к Window. Например, вместо оператора NormVideo;
Window (40, 2, 70, 17); WriteLn (′Нормальная яркость′);
можно было бы использовать два оператора HighVideo;
WindMin := 39 + (1 shl 8); WriteLn (′Повышенная яркость′);
WindMax := 69 + (16 shl 8); end.
На практике нет разницы между пониженной и нормальной яркостью
(в отличие от обращения к Window координаты, хранящиеся в переменных
изображения.
WindMin и WindMax, соответствуют началу отсчета 0,0).
81 82
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »
