Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral
Лабораторная работа

РАБОТА С ОКНАМИ

Цель работы – освоение технологии использования оконного интерфейса.

В одном приложении допускается использовать до 25 окон. Каждое окно имеет свой номер, что позволяет переключаться от одного окна к другому. В каж­дый момент времени только одно окно является активным, и вся выводимая на экран информация направляется в это окно. После удаления окна содержимое эк­рана под ним восстанавливается.

Имеется две разновидности предиката определения окна, отличающиеся ко­личеством объектов (параметров) предиката. Одна из них имеет 8 параметров:

makewindow (Номер, Атр_экрана, Атр_рамки, “Заголовок”, Строка, Столбец, Высота, Ширина)


Все объекты предиката, кроме заголовка, имеют тип integer. При определе­нии окна используется формат (i, i, i, i, i, i, i, i). Если нужно выяснить текущие ха­рактеристики окна, используется формат (o, o, o, o, o, o, o, o).

Назначение параметров следующее.

Номер идентифицирует окно и используется, например, для перехода от одного окна к другому.

Атр_экрана задает цвет фона и цвет символов внутри окна. Значение этого атрибута получается путем сложения атрибутов цвета символов и цвета фона. До­пустимы такие атрибуты цвета символов:

Атрибут

Цвет

Атрибут

Цвет

0

Черный

4

Красный

1

Синий

5

Лиловый

2

Зеленый

6

Коричневый

4

Бирюзовый

7

Белый

Цвета фона:

Атрибут

Цвет

Атрибут

Цвет

0

Черный

72

Светло-красный

8

Серый

80

Лиловый

16

Синий

88

Розовый

24

Голубой

96

Коричневый

32

Зеленый

104

Желтый

40

Светло-зеленый

112

Белый

48

Бирюзовый

120

Белый яркий

64

Красный

Атр_экрана = Атр_фона + Атр_символов.

НЕ нашли? Не то? Что вы ищете?

Например, Атр_экрана = 24+7 = 31 задает белый цвет символов на голу­бом фоне.

Если добавить число 128, то символы будут мерцать.

Атр_рамки позволяет менять цвет окантовки окна и цвет линии рамки.

Значение этого атрибута определяется аналогично атрибуту окна.
Заголовок вставляется по центру в разрыв верхней линии рамки.

Строка и Столбец определяют позицию левого верхнего угла окна.

На полном экране 25 строк и 80 столбцов. Нумерация строк и столбцов начи­нается с нуля, т. е. левый верхний угол имеет координаты (0,0), а правый нижний - (24,79).

Высота и Ширина определяют размеры окна в строках и столбцах.

Если размеры окна выходят за пределы экрана, возникает ошибка.
Пример:


makewindow (1, 7, 135, “окно”, 0, 0, 25, 80)

Это окно на весь экран.

Другая разновидность предиката определения окна имеет на три параметра больше:

makewindow (Номер, Атр_экрана, Атр_рамки, “Заголовок”,

Строка, Столбец, Высота, Ширина,

Признак_очистки, Полож_заголовка, Вид_рамки)

Признак_очистки принимает одно из двух значений:

0 - окно не очищать;

1 - очистить окно.

Полож_заголовка - это число, указывающее позицию заголовка окна в верх­ней части рамки. По умолчанию принимается значение 255, означающее необхо­димость центрирования заголовка. Если указано другое число, то заголовок будет выводиться с соответствующей позиции.

Вид_рамки - строка из 6 символов, каждый из которых интерпретируется следующим образом:

1 — левый верхний угол рамки;
2 — правый верхний угол рамки;
3 — левый нижний угол рамки;
4 — правый нижний угол рамки;
5 — символ горизонтальной линии рамки;
6 — символ вертикальной линии рамки.

Например: “ é ù ë û ¾½“. Можно задать эту строку и кодами ASCII:

“ \218 \191 \192 \217 \196 \179”, а для двойной рамки - “ \201 \187 \200 \188 \205 \186”

Для смены текущего окна предназначен предикат:

shiftwindow (Номер_окна) ( i ), ( o ).

Одно окно может перекрывать другое, но система “помнит” содержимое закрытого окна и восстановит его при возврате к этому окну.

Если вместо номера окна записана свободная переменная, то она получит значение текущего окна.

gotowindow(Номер_окна) ( i ) - быстрый переход между неперекрывающимися окнами.

resizewindow - изменение размера текущего окна. Предикат без параметров позволяет менять только высоту и ширину окна. Положение левого верхнего угла окна при этом не меняется.

resizewindow(Строка, Столбец, Высота_окна, Ширина_окна) - второй формат этого предиката, где Строка и Столбец определяют позицию левого верхнего угла окна.

removewindow - удаление текущего окна.

removewindow(Номер_окна, Признак) - удаление конкретного окна, указав его номер,

где Признак может принимать два значения:

0 - без восстановления экрана;

1 - c восстановлением экрана

clearwindow - очистка окна.

При этом окно заполняется цветом фона, а курсор устанавливается в левом верх­нем углу окна.

cursor (Строка, Столбец) - установка курсора в нужную позицию. Помещает значения текущих координат курсора в свободные переменные Строка и Столбец.

Для курсора отводится место из 14 линий по 14 точек (пикселов). Параметры пре­диката должны находиться в пределах от 0 до 14.

Порядок выполнения работы

1.  Проверить работу программы bd_menu. pro.

2.  Добавить программу bd_menu. pro недостающими процессами обработки базы данных и сохранением базы данных.

3.  Разработать программу, организующую работу со своей базой данных.

Контрольные вопросы

1.  Какими параметрами характеризуется окно на экране дисплея?

2.  Какие предикаты предназначены для перехода от одного активного окна к другому?

3.  С помощью какого предиката удобно подбирать атрибуты цветности, обеспечивающие необходимую контрастность?

4.  Как очистить окно?

5.  Как удалить окно?