ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 14


ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PROMPT                    (строка подсказки для следующего поля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             PROMPT(text)[,COLOR()][,TRN]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

text                Строковая константа или переменная  содержа-
                    щая текст подсказки.

COLOR               Задает цвета экрана для PROMPT

TRN                 Указывает, что в графическом режиме поле вы-
                    водится только цветом переднего плана, оста-
                    вляя фон как есть.

PROMPT задает текст, выводимый в связи со следующим за ним полем
типа ENTRY, TEXT, LIST или OPTION. Текстовая строка PROMPT-а мо-
жет содержать амперсанд (&), который означает, что следующий  за
амперсандом символ - "горячая" клавиша для вызова связанного по-
ля. Одновременное нажатие Alt и "горячей клавиши" немедленно вы-
бирает связанное поле типа ENTRY, TEXT, LIST или OPTION.

Пример:

    ROW(6,14) PROMPT('Как Вас зовут: ')
    ROW(6,30) ENTRY(@S20),USE(Name)

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
RADIO                                        (поле радио-кнопка)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             RADIO(text)[,COLOR()][,TRN][,MSG()]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

text                Строковая константа или переменная  содержа-
                    щая выводимую на экран строку.

COLOR               Задает цвета экрана для этого поля.

TRN                 Указывает, что в графическом режиме поле
                    выводится только цветом переднего плана,
                    оставляя фон как есть.

MSG                 Текст, выводимый в строке сообщений экрана.

RADIO-кнопки - это элементы меню в структурах OPTION. Если  иное
не задано  через LOADSYMBOLS  или USESYMBOLS,  text выводится  в
скобках. Если кнопка выбрана,  то она представляет собой  символ
бубей (ASCII 4 = ). Только одна кнопка из структуры OPTION  мо-
жет быть выбрана в один момент времени.

Пример:
 ROW(10,6) OPTION,USE(TaxSelection)!Начало структуры радиокнопки
 ROW(11,9)   RADIO('Pre-Tax'),MSG('Было до сбора налогов')
 ROW(12,9)   RADIO('Post-Tax'),MSG('Стало после сбора налогов')
           .                       !конец структуры

См. также: LOADSYMBOLS, USESYMBOLS

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
REPEAT                                    (структура-посторение)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
         REPEAT(down,across)[,EVERY()][,INDEX()][,PRE()][,MAX()]
           [POINT()]
           fields to repeat
         .
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

down                Целочисленная константа, задающая число пов-
                    торений сверху вниз. Если пропущено,  подра-
                    зумевается 1.

across              Целочисленная константа, задающая число пов-
                    торений слева направо. Если пропущено,  под-
                    разумевается 1.

EVERY               Число строк и столбцов между повторяющимися
                    полями. По умолчанию - EVERY(1,1).

INDEX               Индексная переменная для REPEAT-структуры.

PRE                 Префикс для меток в составе  REPEAT-структу-
                    ры.

MAX                 Переменная, получающая  количество строк   в
                    REPEAT-структуре во время исполнения.

POINT               Курсор-указатель,  подсвечивающий  отдельные
                    эелементы REPEAT-структуры.

REPEAT-структура может рассматриваться  как "массив на  экране".
Каждое повторение структуры соответствует одному элементу масси-
ва. Общее число элементов  - это произведение параметров  down и
across.  Чаще  всего  в  REPEAT-структуре используются поля типа
STRING, для вывода прокручиваемой таблицы.

Кроме этого, в REPEAT-структуру можно помещать и ENTRY-поля. USE
переменные  ENTRY-полей,  помещенных  в REPEAT-структуру, должны
иметь атрибут  DIM, с  размером большим  или равным произведению
параметров down и across. Каждая USE-переменная в  REPEAT-струк-
туре имеет свой  атрибут DIM, она  не может быть  частью группы,
имеющей атрибут DIM.

Номера повторяющимся полям назначаются в том порядке, в  котором
они появляются в SCREEN-структуре (так же, как и неповторяющимся
полям). Не имеет значение, на каком элементе-повторении вы нахо-
дитесь, поскольку номер поля будет один и тот же. Это  означает,
что EQUATE-метка REPEAT-структуры ссылается целиком на всю струк
туру, а не на отдельные ее элементы. Номер текущего элемента-пов
торения можно получить из переменной INDEX.

Повторяющиеся поля выводятся в позициях, определяемых их парамет
рами row и column, атрибутом EVERY и значением индексной перемен
ной (REPEAT  INDEX). При  открытии экрана,  выводится каждый эле
мент-повторение инициализированного поля. Первый  элемент-повто-
рение в REPEAT-структуре, выводится с позиции, задаваемой коорди
натами самой структуры REPEAT. Атрибут EVERY задает позиции  по-
следующих повторений, опираясь на число строк и столбцов, разде-
ляющих отдельные элементы.

Когда поле-повторение получает данные, значение индексной  пере-
менной определяет, какой элемент массива USE-переменной получает
введенное  значение.  Оператор  ACCEPT автоматически увеличивает
индексную переменную, по  мере заполнения очередного  элемента в
REPEAT-структуре, если INDEX превысит максимальное значение,  то
для ввода выбирается следующее поле для экрана. Нажатие  клавиши
Esc (на НЕ-SAA/CUA экранах)  или BACKTAB (для SAA/CUA  экранов),
уменьшает INDEX,  заставляя выбрать  предыдущий элемент-повторе-
ние. Если был выбран первый элемент, то ESC, BACKTAB, или  СТРЕЛ
КА ВВЕРХ выбирает для ввода следующее поле на экране.

Пример:

Следующая REPEAT-структура позволяет оператору обновлять  массив
помесячных затрат:

LoadMonthArray PROCEDURE

Ndx    BYTE                                !Индексная переменная
Amt    DECIMAL(7,2),DIM(12)                !Массив помесячных
					   !затрат
Month  STRING('JanFebMarAprMayJunJulAugSepOctNovDec')
Mnth   STRING(3),DIM(12),OVER(Month)       !Этот массив наложен
					   !поверх массива Month

Screen    SCREEN(16,22),AT(5,30),PRE(Scr),COLOR(7)
             ROW(2,5)    STRING('Помесячные затраты')
             ROW(16,7)   STRING('F10 - выход')
                     REPEAT(12),INDEX(Ndx)
             ROW(3,5)    POINT(1,16),USE(?Point),ESC(?-l),REQ
Month        COL(5)      STRING(3)
             COL(12)     ENTRY(@N_7.2),USE(Amt),INS
                    ..         !Конец структур REPEAT и SCREEN

     CODE
     OPEN(Screen)
     LOOP Ndx = 1 TO 12                    !Заполняем месяцы
       Scr:Month = Mnth[Ndx]               !   на экране
     .
     LOOP
       ALERT(2058)                         !Взводим клавишу F10
       ACCEPT
       IF KEYCODE() = 2058                 !Если нажата F10
         RETURN                            !  то выходим
     . .

См. также:  POINT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
STRING                            (экранная переменная - строка)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
                     ідлина  і
[метка]      STRING (ізначен.і)[,COLOR][,TRN][,MSG()]
                     іформат і
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

метка               Имя, которое позволяет обращаться к полю.

длина               Числовая константа,  задающая длину  строки.
                    В этом случае, строка изначально пуста.

значение            Строковая константа или переменная  содержа-
                    щая начально  значение строки.  ДЛИНА строки
                    становится равной длине ЗНАЧЕНИЯ.

формат              Используется  для  форматирования   ЗНАЧЕНИЯ
                    строки. ДЛИНА, в таком случае, будет  такой,
                    чтобы  вместить  отформатированную   строку.
                    ЗНАЧЕНИЕ в этом случае - пусто.

COLOR               Задает цвета экрана для этого поля.

TRN                 Указывает,  что  в графическом  режиме  поле
                    выводится  только  цветом  переднего  плана,
                    оставляя фон как есть. Таким образом,  можно
                    наложить строку на графический рисунок.

MSG                 Текст, выводимый на строке сообщений экрана,
                    которая задается функцией SETMSG.

STRING выводится на экран  в относительной позиции (ROW,COL)  от
верхнего левого угла экрана.  STRING это единственный тип  пере-
менных, который можно описать в SCREEN-структурах.

К экранной строке с меткой, можно обратиться как и к любой  дру-
гой переменной,  пока открыт  содержащий ее  экран. Она занимает
видеопамять и требует, также, обычной памяти и специальной обра-
ботки для выполнения любых математических операций. Скажем,  для
увеличеник значения СТРОКИ, ее надо преобразовать в число,  уве-
личить, преобразоввать число обратно  в строку и вновь  записать
получившуюся  строку  в  видеопамять.  Гораздо эффективней будет
использовать числовые переменные для вычислений, и уже их значе-
ния присваивать экранным строкам.

Пример:

Screen  SCREEN(3,30),PRE(Scr),CENTER
          ROW(1,1) STRING('<201,205{22},187>')  ! Рисуем
          ROW(2,1) STRING('<186,32{22},186>')   ! рамочку
          ROW(3,1) STRING('<200,2O5{22},188>')  !
Msg       ROW(2,5) STRING(20)                   !Поле для сооб-
						!щений
        .

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
TEXT                                  (область для ввода текста)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             TEXT(строк,столбцов),USE()[,COLOR()][,TRN][,HLP()]
               [ESC()][,LFT][,REQ][,іINSі][,іCAPі][,ALRT()]
                                    іOVRі   іUPRі
               [,MSG()][,SKIP]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строк               Целочисленная  константа,   задающая   число
                    строк в TEXT-поле.

столбец             Целочисленная  константа,   задающая   число
                    столбцов в TEXT-поле.

USE                 Задает переменную, которая принимает введен-
                    ное в TEXT-поле значение.

COLOR               Задает цвета экрана для этого поля.

TRN                 Указывает,  что  в  графическом режиме  поле
                    выводится  только  цветом  переднего  плана,
                    оставляя фон как есть.

HLP                 Задает идентификатор окна помощи, связанного
                    с этим полем.

ESC                 Поле, на которое перейти при нажатии  клавиш
                    ESC или BACKTAB.

LFT                 Разрешает перенос слов во вводимых данных.

REQ                 Поле не может быть пустым или нулевым.

INS/OVR             Режим ввода - ВСТавка/ЗАМена.

UPR/CAP             В  каком режиме происходит ввод - ВСЕ  БУКВЫ
                    ЗАГЛАВНЫЕ или Первая Буква Каждого Слова.

ALRT                ALERT-клавиши, активные для данного поля.

MSG                 Текст, выводимый в строке сообщений экрана.

SKIP                Это поле нельзя выбрать для ввода данных.

TEXT-поле, это  многорядное строковое  поле с  переносом слов, и
вертикальной прокруткой, в  SCREEN-структуре. Как и  ENTRY-поле,
TEXT-поле может отличаться по длин от своей USE-переменной. Дли-
на TEXT-поля, это произведение параметров СТРОК и СТОЛБЦОВ. Если
USE-переменая длиннее, чем TEXT-поле, то она делится на  сегмен-
ты, длиной по СТОЛБЦОВ символов. Эти сегменты можно прокручивать
вертикально в TEXT-поле так, что СТРОК сегментов  USE-переменной
одновременно видны в TEXT-поле  в любой момент времени.  Если же
USE-переменная короче, чем TEXT-поле, то можно ввести не  больше
символов, чем длина USE-переменной.

Когда TEXT-поле выбрано, курсор помещается в первый столбец пер-
вой строки. Клавиша ENTER переводит курсор в первый столбец сле-
дующей строки. Таким  образом, ENTER эквивалента  нажатию клавиш
СТРЕЛКА ВНИЗ и HOME. Нажав ENTER на последней строке  TEXT-поля,
можно вызвать прокрутку поля вверх  на одну строку, до тех  пор,
пока еще есть  доступные для прокрутки  сегменты USE-переменной.
Нажатие ENTER  или СТРЕЛКИ  ВНИЗ на  последнем сегменте, вызвает
завершение поля и обновление USE-переменной.

Атрибут ALRT или оператор ALERT можно использовать для  назначе-
ния  клавиши,  которая  завершает  поле, не дожидаясь заполнения
всех строк. ALERT-клавиши  не обновляют USE-переменную,  поэтому
надо использовать оператор UPDATE.

Стрелки ВВЕРХ и ВНИЗ, клавиши PgUp, PgDn, Ctrl-PgUp и  Ctrl-PgDn
позволяют прокручивать USE-переменную в TEXT-поле. Стрелки ВВЕРХ
и ВНИЗ прокручивают за раз на один сегмент вверх или вниз с пер-
вой или  последней строки  TEXT-поля. PgUp  и PgDn  прокручивают
сразу СТРОК сегментов. Ctrl-PgUp и Ctrl-PgDn переходят к первому
или последнему сегменту USE-переменной. Нажатие ВВЕРХ из первого
сегмента, приводит  к выбору  предыдущего поля,  нажатие ВНИЗ из
последнего сегмента, вызывает обновление USE-переменной и  выбор
следующего поля.

Перенос слов  разрешается атрибутом  LFT. Перенос  слов забивает
хвост каждого сегмента пробелами так, чтобы слово попало целиком
в следующий сегмент, если иначе оно пападает сразу в два сегмен-
та. Таким образом, USE-переменные TEXT-полей становятся  "чувст-
вительными к  ширине." Если  чувствительная к  ширине переменная
использована в TEXT-поле  переменной ширины, между  словами поя-
вятся ненужные пробелы, и слова могут разбивать строки.

Пример:

       ROW(18,15) TEXT(4,60),USE(Act:Comments),HLP('Comments')
       ROW(20,10) TEXT(3,50),USE(Rec:Notes),LFT,ESC(?Rec:Phone)
       ROW(10,15) TEXT(10,60)USE(Emp:History),LFT

			АТРИБУТЫ ПОЛЕЙ

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ALRT                     (установить клавишу(и) завершения поля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             ALRT(первый-код-клавиши[,последний-код-клавиши])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

первый-код-клавиши  Числовой код  клавиши или EQUATE-метка  кода
                    клавиши.  Он  может  быть  началом диапазона
                    кодов клавиш.

последний-код-кла-  Последний код клавиши или EQUATE-метка в ди-
виши                апазоне кодов клавиш.


Атрибут ALRT задает клавищи завершения поля для отдельного  поля
на экране. Он  используется с полями  типа ENTRY, TEXT,  OPTION,
PAUSE или  POINT. Если  поле завершается  ALRT-клавишей, то  его
USE-переменная НЕ обновляется автоматически.

Атрибут ALRT разрешен и для оператора SCREEN. Клавиши,  взведен-
ные таким образом, активны для любого поля на экране.

Пример:
Screen SCREEN(6,40).PRE(Scr),ALRT(F10Key)
			       !F10 взведена для всех полей
         ROW(2,5)  ENTRY(@S20),USE(Name),ALRT(F5Key)
                               !F5 взведена только для этого
			       !поля
         ROW(4,5)  TEXT(2,30),USE(Memo),ALRT(F7Key,F9Key)
                               !F7 - F9 взведены только для
			       !этого поля
       .
    CODE
    OPEN(Screen)               !Открываем экран для обработки
    LOOP                       ! и обрабатываем все поля
      ACCEPT                   !Ждем завершения поля
      IF KEYCODE() = F10Key    !Проверяем ALERT-клавишу экрана
        RETURN
      .
      CASE FIELD()
      OF ?Name                 !На ENTRY-поле
        IF KEYCODE() = F5Key   !Проверяем его ALERT-клавишу
          UPDATE               !  обновляем USE-переменную
          DO SomeRoutine       !  и что-то делаем
        .
      OF ?Comments             !На TEXT-поле
        CASE KEYCODE()         !Проверяем его ALERT-клавиши
        OF F7Key               !и обрабатываем каждую по-своему
          UPDATE
          DO SevenRoutine
        OF F8Key
          UPDATE
          DO EightRoutine
        OF F9Key
          UPDATE
          DO NineRoutine
    . . .                      !Конец case, case и loop

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
CAP                        (Первые буквы слов делать заглавными)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             CAP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут CAP задает  автоматическую капитализацию для  полей типа
ENTRY и TEXT. Не важно, в каком регистре слова вводятся - каждый
символ, следующий за пробелом, и первый символ первого слова бу-
дет переведен в верхний регистр, а остальные символы - в нижний.

Пример:

Screen      SCREEN(6,40),PRE(Scr)
              ROW(2,5) ENTRY(@S20).USE(Name),CAP
              ROW(4,5) TEXT(2,30),USE(Comments),CAP
            .

См. также: ENTRY, TEXT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
COLOR                                      (задать цвета показа)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
        COLOR(normal[,selected][,dim][,hot-normal][,hot-select])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

normal              Цвет для обычного вывода.

selected            Цвет поля, когда оно выбрано.

dim                 Цвет поля,  когда  оно запрещено  оператором
                    DISABLE.

hot-normal          Цвет "горячей" клавиши при обычном выводе.

hot-select          Цвет "горячей" клавиши, когда поле активно.

Атрибут COLOR идентифицироет цвета, используемые в SCREEN-струк-
туре, в  любом поле  SCREEN-структуры или  в PULLDOWN-структуре.
Каждый тип поля может использовать все или некоторые  параметры,
связанные с атрибутом COLOR. Ниже описаны параметры для  каждого
типа поля. (SPA. - вероятно рекомендуемые, а не обязательные)

Оператор              normal selected dim hot-normal hot-select
ДДДДДДДДДДД           ДДДДДД ДДДДДДДД ДДД ДДДДДДДДДД ДДДДДДДДДД
BUTTON                  x       x      x      x          x
CHECK                   x       x      x      x          x
ENTRY                   x       x      x
LIST                    x       x      x
OPTION                  x       x      x
OPTION STRING           x       x      x      x          x
PAINT                   x
PAUSE                   x
POINT                   x
PROMPT                  x       x      x      x          x
RADIO                   x       x      x      x          x
SCREEN                  x
STRING                  x
TEXT                    x       x      x
PULLDOWN                x       x      x      x          x
MENU                    x       x      x      x          x

Параметры атрибута COLOR, это числа, в диапазоне 0..255, которые
задают номера элементов внутреннего массива Кодов Цветовых  Сти-
лей. Это 256-байтный массив, который хранит выбранные на  данный
момент Коды Цветовых Стилей. Каждый элемент инициализирован зна-
чением, равным его номеру (элемент  0 := 0, элемент 1  :=1 итд),
до  тех  пор,  пока  иное  не  задано  операторами SETSTYLES или
GETSTYLES. Текущий цвет вывода есть Код Цветового Стиля,  храня-
щийся в элементе массива.

Пример:

Screen  SCREEN,COLOR(1)                     !Базовый цвет экрана
          ROW(4,2)  PROMPT('&State:'),COLOR(5,6,7,8,9)
          ROW(4,10) ENTRY(@S2),USE(State),COLOR(5,6,7)
        .

См. также: SETSTYLES, GETSTYLES, STYLES, Коды Цветовых Стилей


ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
COLS                           (задает столбцы в LIST-структуре)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             COLS(string,variable[,spaces])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

string              Строковая константа или переменная, содержа-
                    щая ASCII-значения, задающие число  символов
                    для посветки в каждом столбце. Каждый символ
                    этой строки задает  ширину одного столбца  в
                    LIST. Общее число символов в строке  зависит
                    от числа столюцов в LIST-структуре.

variable            Имя целочисленной переменной, которая  полу-
                    чает номер  текущего подсвеченного  столбца,
                    когда LIST завершается оператором ACCEPT.

spaces              Целочисленная константа, задающая число про-
                    белов между столбцами на экране.

Атрибут COLS задает вывод элементов очереди в листбоксе  подобно
электронной таблице. Курсор подсвечивает только один столбец  за
раз. Строка, описывает число символов в каждом столбце,  которые
должен подсвечивать  курсор. Параметр  SPACES задает  количество
пробелов, автоматически вставляемых между выводимыми столбцами.

Когда ACCEPT завершает LISTбокс, VARIABLE получает номер подсве-
ченного столбца.  Если VARIABLE  уже содержит  какое-то значение
при активизации листбокса,  то сращу же  активизируется столбец,
номер которого хранится в VARIABLE.

Если вместе с атрибутом COLS, к листбоксу применяется еще и атри
бут FIX, то появляется  возможность ввести заголовки столбцов  в
листбоксе. Эти  заголовки не  будут прокручиваться,  и не  могут
быть выбраны.

Пример:

ListOue  QUEUE,PRE(Lst)              !Очередь номеров деталей
PartNoA    STRING(10)                !  отформатированная для
PartNoB    STRING(10)                !  вывода в две колонки
         .

Screen   SCREEN(20,30),PRE(Scr)
           ROW(3,45) ENTRY(@s10),USE(Trn:PartNo),SKIP
           ROW(4,45) LIST(10,20),FROM(Lst:PartNo), |
                 USE(?PartList),COLS('<10,10>',Column#,1)
         .

         CODE                  !Строим очередь для листбокса
  SET(PartsFile)
  LOOP
    NEXT(PartsFile)
    Lst:PartNoA = Par:PartNo
    IF EOF(PartsFile) THEN BREAK.
    NEXT(PartsFile)
    Lst:PartNoB = Par:PartNo
    IF EOF(PartsFile) THEN BREAK.
    ADD(ListQue)
      IF ERRORCODE() THEN STOP(ERROR()).
    CLEAR(ListQue)
  .
  ADD(ListQue)
    IF ERRORCODE() THEN STOP(ERROR()).
  OPEN(Screen)                       !Затем откроем экран
  ACCEPT                             !  и позволим сделать выбор
  GET(ListQue,CHOICE())              !Получаем выбранный элемент
  EXECUTE Column#
    Trn:PartNo = Lst:PartNoA         !Выбрано из первого столца?
    Trn:PartNo = Lst:PartNOB         !А может быть из второго?
  .

См. также: LIST, FIX

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ESC                               (куда перейти при нажатии ESC)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             ESC(field)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

field               Целое число, EQUATE-метка поля или же выра-
                    жение, задающее выбираемое поле.

Атрибут ESC для  полей типа ENTRY,  TEXT, OPTION, PAUSE  и POINT
устанавливает поле, которое надо выбрать при нажатии Esc (НЕ-CUA
экраны) или BACKTAB (CUA экраны). Обычно,нажатие ESC или BACKTAB
приводит к выбору предыдущего  поля в той последовательности,  в
которой поля выбирались. Атрибут ESC перекрывает нормальную  по-
следовательность.

Пример:

Screen  SCREEN,COLOR(1)
          ROW(3,10) ENTRY(@S15),USE(Name)       !Поле 1
          ROW(4,10) ENTRY(@S20),USE(Address)
          ROW(5,10) ENTRY(@S12),USE(City)
          ROW(5,24) ENTRY(@S2),USE(State).ESC(?Name)
                                             !по ESC - на поле 1
       ROW(5,28) ENTRY(@NO5),USE(Zip),ESC(1) !по ESC - на поле 1
          ROW(6,10) ENTRY(@P(###)###-####P),USE(Phone),ESC(?-5)
        .                                    !по ESC - на поле 1

См. также: ENTRY, TEXT, MENU, PAUSE, POINT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
EVERY                         (установить промежуток для REPEAT)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             EVERY(строк,столбцов)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строк               Целочисленная константа, которая  указывает,
                    на сколько строк ниже будут выводиться  сле-
                    дующие поля в REPEAT-структуре.

столбцов            Целочисленная константа, которая  указывает,
                    на сколько столбцов правее будут выводиться
                    следующие поля в REPEAT-структуре.

EVERY задает числа СТРОК и СТОЛБЦОВ, разделяющих отдельные  эле-
менты в REPEAT-структуре.  Например, EVERY(2,20) размещает  эле-
менты-повторения в каждой второй строе, через 20 столбцов.  Если
параметр  пропущен,  подразумевается  единица.  Если  в описании
структуры REPEAT вообще пропущен атрибут EVERY, то  подразумева-
ется EVERY(1,1).

Пример:

Screen SCREEN,PRE(Scr)
         REPEAT(12,3),EVERY(1,20),INDEX(Ndx)!12x3,20 cols apart
           ROW(2,5) ENTRY(@N-7.2),USE(Amt)!36 elements on screen
       .


ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
FILL              (переменная, получающая значение из листбокса)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             FILL(field)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

field               EQUATE-метка поля, идентифицирующая экранное
                    поле, которое будет принимать значение.

Атрибут FILL задает поле экрана, в которое будет передано значе-
ние, которое выбрано из листбокса.

Пример:

PartOue  QUEUE,PRE(Que)
RecPtr     LONG
PartNo     STRING(10)
         .
Screen SCREEN.PRE(Scr)
         ROW(2,5) ENTRY(@N_7.2),USE(Fil:PartNo),SKIP
         ROW(3,5) LIST(10,10),FROM(Que:PartNo),FILL(?Fil:PartNo)
       .                 !Fil:PartNo получает выбранное значение

См. также: LIST

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
FROM                          (очередь для просмотра через LIST)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             FROM(field)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

field               Метка очереди (QUEUE) или поля очереди.  Мо-
                    жет быть типа GROUP.

Атрибут LIST-структуры FROM,  задает поле, которое  надо вывести
в листбоксе.

Пример:

PartOue  QUEUE,PRE(Que)
RecPtr     LONG
PartNo     STRING(10)         !Это поле выводим на экран
         .
Screen SCREEN,PRE(Scr)
         ROW(2,5) ENTRY(@N_7.2),USE(Fil:PartNo),SKIP
         ROW(3,5) LIST(10,10),FROM(Oue:PartNo),FILL(?Fil:PartNo)
                              !Показываем список из Que:PartNo
       .

См. также: LIST

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
FIX                                        (заголовки листбокса)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             FIX(number)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

number              Целочисленная константа, которая задает чис-
                    ло ФИКСированных строк.

Атрибут LIST-структуры FIX, задает число элементов очереди,  ко-
торые содержат "статичную" информацию. Эти элементы выводятся  в
верхней части листбокса. Они  не подлежат прокрутке, и  не могут
быть выбраны.  Эти элементы  используются для  вывода заголовков
в ЛИСТбоксе, позволяя задать заголовок для каждого столбца,  ес-
ли LIST описан с атрибутом COLS.

Пример:
ListOue QUEUE,PRE(Lst)         !Очередь номеров запчастей
PartNoA   STRING(10)           !  отформатированная для вывода
PartNoB   STRING(10)           !  на экран в две колонки
        .
Screen  SCREEN(20,30),PRE(Scr)
          ROW(3,45) ENTRY(@s10),USE(Trn:PartNo).SKIP
          ROW(4,45) LIST(10,20),FROM(Lst:PartNo), і
              USE(?PartList),COLS('<10,10>',Column#,1),FIX(2)
        .
        CODE
  Lst:PartNoA = 'Part A'       !Создаем заголовки столбцов
  Lst:PartNoB = 'Part B'
  ADD(ListQue)                 !  и добавляем их к очереди
    IF ERRORCODE() THEN STOP(ERROR()).
  ListOue = ALL('-')           !Создаем разделители столбцов
  ADD(ListOue)                 !  и добавляем их в очередь
    IF ERRORCODE() THEN STOP(ERROR()).
  SET(PartsFile)               !Строим очередь для листбокса
  LOOP
    NEXT(PartsFile)
    Lst:PartNoA = Par:PartNo
    IF EOF(PartsFile) THEN BREAK.
    NEXT(PartsFile)
    Lst:PartNoB = Par:PartNo
    IF EOF(PartsFile) THEN BREAK.
    ADD(ListOue)
      IF ERRORCODE() THEN STOP(ERROR()).
    CLEAR(ListQue)
  .
  ADD(ListQue)
    IF ERRORCODE() THEN STOP(ERROR()).
  OPEN(Screen)                 !Открываем экран
  ACCEPT                       !  и доверяем выбор пользователю
  GET(ListOue,CHOICE())        !Берем выбранный элемент очереди
  EXECUTE Column#
    Trn:PartNo = Lst:PartNoA   !Выбрано из первого столбца?
    Trn:PartNo = Lst:PartNoB   !Выбрано из второго столбца?
  .
См. также: LIST, COLS

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
HIDE                                    (скрыть содержимое поля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             HIDE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

ENTRY-поле с атрибутом HIDE  не показывает данные на  экране. По
мере ввода символов  в поле, они  (только на экране)  заменяются
звездочками. Обычно это используется для полей для ввода паролей

Атрибут HIDE можно использовать с листбоксами. В этом случае, по
давляется полоса подсветки (курсор) когда листбокс не активен.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
HLP                 (идентификатор окна помощи для данного поля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             HLP(window)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

window              Строковая  константа или  переменная (до  20
                    символов), которая задает идентификатор окна
                    подсказки из HELP-файла программы.

Атрибут HLP  для полей  типа ENTRY,  TEXT, CHECK,  LIST, BUTTON,
OPTION, PAUSE или  POINT задает окно  подсказки для этого  поля.
Атрибут HLP в описании SCREEN, действует для всех полей  экрана,
у которых этот атрибут не задан.

Активное (выбранное) окно подсказки вызывается по клавише F1  во
время ожидания ввода операторами ASK или ACCEPT, либо выполнени-
ем оператора HELP без  параметров. HELP-файл должен быть  открыт
перед вызовом окна.

См. также:  ENTRY,  TEXT,  CHECK,  LIST,  BUTTON,  OPTION, PAUSE,
POINT, SCREEN, HELP

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
HSCROLL, VSCROLL, HVSCROLL          (линейки прокрутки для LIST)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             HSCROLL
             VSCROLL
             HVSCROLL
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Параметры HSCROLL, VSCROLL и HVSCROLL помещают в листбокс линей-
ки прокрутки. HSCROLL - горизонтальную вниз листбокса, VSCROLL -
вертикальную справа, а HVSCROLL - обе. Линейки прокрутки занима-
ют одну строку или один столбец из LIST(строк,столбцов).

Вертикальные  линейки  прокрутки  позволяют  прокручивать список
мышью вверх и вниз, а горизонтальные - панорамировать его  мышью
влево/вправо.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
IMM                                      (немедленое исполнение)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             IMM
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Поля ENTRY или TEXT с атрибутом IMM считаются завершенными,  как
только они полностью забиты данными, без нажатия ENTER или  TAB.
Структура OPTION с атрибутом IMM, завершается, как только  нажат
первый непустой символ, содержащийся в элементах меню, или нажа-
та "Горячая" клавиша, задаваемая амперсандом в строке. Поля типа
LIST или POINT с атрибутом IMM, считаются завершенными при  каж-
дом перемещении курсора по списку или REPEAT-структуре. При этом
программа получает  управление при  каждом нажатии  клавиш ВВЕРХ
или ВНИЗ.

IMAGE-поля с атрибутом IMM, выводятся немедленно, позволяя любым
строковым литералам, идущим за ними в описании SCREEN-структуры,
перекрывать область рисунка. BUTTON с атрибутом IMM, завершается
при нажатии ЛЕВОЙ кнопки  мыши. Таким образом, можно  непрерывно
выполнять связанный с кнопкой код  до тех пор, пока кнопка  мыши
не будет отпущена.

См. также: ENTRY, TEXT, OPTION, LIST, POINT, BUTTON, IMAGE

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
INDEX                          (индексная переменная для REPEAT)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             INDEX(varible)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

variable            Метка численной переменной.

Атрибут INDEX называет переменную, которая как и индекс массива,
задает активный в данный момент элемент REPEAT-структуры. Значе-
ние 1 активизирует первый элемент, а значение равное  произведе-
нию параметров структуры REPEAT (down и across) активизирует по-
следний элемент.

Если индексная переменная выходит за допустимые для НЕЕ пределы,
то она сбрасывается в единицу. REPEAT INDEX проходит по  строкам
и по столбцам - сначала сверху вниз, а потом слева направо.

См. также: REPEAT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
INS                                    (ввод - в режиме вставки)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             INS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут INS можно  использовать с полями  типа ENTRY и  TEXT для
включения ввода  в режиме  вставки. Символя,  введенные в режиме
вставки, сдвигают введенные перед  ними символы вправо. Цифры  -
толкают другие цифры влево  от десятичной точки. Для  выключения
режима вставки можно воспользоваться клавишей INS.

См. также: ENTRY, TEXT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
LFT                                         (выравнивание влево)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             LFT
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Этот атрибут используется с ENTRY-полями для выравнивания  стро-
ковых  данных  влево.  При  обновлении USE-переменной, из строки
удаляются ведущие пробелы.

ИСпользование этого  атрибута с  TEXT-полями, позволяет  перенос
строк при редактировании.

См. также: ENTRY, TEXT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
MAX                       (переменная-счетчик столбцов в REPEAT)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             MAX(varible)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

variable            МЕтка численной переменной.

Атрибут MAX называет переменную, которая получяет, во время  ра-
боты программы, число  столбцов экрана, занятых  REPEAT-структу-
рой. MAX, совместно  с атрибутом EXPAND,  позволяет использовать
экраны с REPEAT-структурами, разработанные для режима 25  строк,
в режимах 43/50 итд. строк. MAX-переменная позволяет вам во вре-
мя исполнения определить, сколько элементов содержит REPEAT-стру
ктура. То  есть появляется  возможность писать  некий обобщенный
код для заполнения REPEAT-массива.

Пример:

Rows  BYTE                                !Столбцов в REPEAT
Ndx   BYTE                                !Индекс повторения
Amt   DECIMAL(7,2),DIM(100)               !Массив выплат

Screen SCREEN(25,80),PRE(Scr),COLOR(7),EXPAND(4)
         REPEAT(12),INDEX(Ndx),MAX(Rows)  !Переменная Rows
					  !получаю число строк
           ROW(3,5) POINT(1,16),USE(?Point)
Amnt       ROW(3,12) STRING(@N_7.2)
       . .
       CODE
    OPEN(Screen)
    LOOP Ndx = 1 TO Rows                  !Заполняем экран вы-
      Scr:Amnt = Amt[Ndxl                 !  платами
    .

См. также: EXPAND, REPEAT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
MSG                                   (вывод сообщения на экран)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             MSG(text)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

text                Строковая константа или переменная, содержа-
                    щая строку для вывода.

Этот атрибут можно использовать с полями типа ENTRY,CHECK,RADIO,
STRING, TEXT, LIST, BUTTON и OPTION STRING. MSG выводит  тексто-
вую строку в Область  Сообщений Экрана, задаваемую SETMSG.  Если
эта область не была задана SETMSG, то по умолчанию ей становится
нижняя строка экран, начиная с 1 столбца и длиной 80 символов.

См. также: SETMSG

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
NAME                                (файл с графикой для показа)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             NAME(filename)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

filename            Строковая константа или переменная, содержа-
                    щая  спецификацию  (путь+имя)  .PCX или .GIF
		    файла.

Атрибут NAME поля IMAGE, задает имя файла с PCX или GIF рисунком
который надо показать.

Пример:

Screen   SCREEN(20,30),PRE(Scr),GRAPHIC
           ROW(3,5) IMAGE(14,20),NAME('picture.pcx')
         .

См. также: IMAGE

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
OVR                                     (ввод - в режиме замены)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             OVR
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Этот атрибут используется с полями ENTRY и TEXT. Он  переключает
клавиатуру в режим замены. Во время ввода можно отменить его дей
ствие, нажав клавишу INS.

См. также: ENTRY, TEXT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
REQ                      (поле не может быть нулевым или пустым)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             REQ
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут REQ означает,  что поля ENTRY,  TEXT, OPTION, или  POINT
требуют ввода в них. ТРЕБУЮЩИЕ строку поля ENTRY или TEXT не мо-
гут быть заполнены  пробелами, а ТРЕБУЮЩЕЕ  поле ENTRY не  может
быть нулем.

ТРЕБУЮЩИЕ поля типа OPTION или POINT, заставляют курсор "вернуть
ся на верх или в низ структуры (что зависит от направления  дви-
жения курсора).  Требующие поля  типа OPTION  и POINT заставляют
делать выбор, чтобы завершить это поле.

Поля типа  BUTTON с  атрибутом REQ,  автоматически проверяют все
остальные поля с этим же атрибутом на текущем экране, чтобы убе-
диться, что те поля не нулевые и не пустые. Это происходит и  на
не-CUA и на CUA экранах. Это позволяет пользователю перемещаться
между полями с помощью мышки, оставаясь уверенным, что все ТРЕБУ
ЮЩИЕ поля содержат правильные данные по завершении экрана.

На не-CUA экранах, попытка завершить ТРЕБУЮЩЕЕ поле с нулем  или
пробелом, вызывает звуковой сигнал и мигание этого поля.  Испра-
вить положение можно нажатием ESC или вводом корректного  значе-
ния. На  CUA экранах,  поля с  атрибутом REQ  не проверяют своих
данных пока не нажата "кнопка" с атрибутом REQ.

См. также: BUTTON, ENTRY, TEXT, OPTION, REPEAT REUSE

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
REUSE                 (использовать ранее установленную палитру)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             REUSE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут REUSE для IMAGE-полей  указывает, что PCX или  GIF-образ
будет выведен на экран в палитре, установленной другим рисунком,
который уже на экране. Если на экране нет других рисунков, то ис
пользуется стандартная палитра вышего адаптера. Если же этот ат-
рибут вовсе не задан, то используется собственная палитра рисун-
ка, а выведенные ранее образы перекрашиваются.

Это атрибут нужен только для SVGA режима в 256 цветов. В 16-цвет
ных VGA  и EGA  режимах используется  только стандартная палитра
выидеоадаптера.

Пример:

Screen  SCREEN(20,30),PRE(Scr),GRAPHIC
          ROW(3,5) IMAGE(14,20),NAME('picture.pcx'),REUSE
        .

См. также: IMAGE

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SKIP                                       (пропустить это поле)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SKIP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут SKIP используется с полями ENTRY, TEXT, STRING OPTION  и
LIST. Поле с атрибутом  SKIP не может редактироваться  человеком
или активизироваться  оператором SELECT.  SKIP создает  экранные
поля  "только  для  просмотра".  Его USE-переменная выводится на
экран оператором DISPLAY.

Пример:

Screen SCREEN(20,60),PRE(Scr)
         ROW(6,14) ENTRY(@S24),USE(Name),SKIP!Только для показа
         ROW(15,10) TEXT(3,50),USE(Rec:Notes),SKIP
                                             !и текст тоже
         ROW(19,5) PAUSE('Press any key to continue')
       .                      !Весь экран - только для просмотра

См. также: ENTRY, TEXT, OPTION, LIST

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
TRN                                     (прозрачное изображение)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             TRN
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут TRN разрешен  только для операторов  PAINT или SCREEN  в
текстовом режиме.  Это позволяет  закрытому экраном  изображению
проглядывать через текущий экран, делая этот экран или закрашен-
ный прямоугольник прозрачными. (С.П.А. - Ну и фразочка!)

В графическом режиме, любое экранное поле с атрибутом TRN  выво-
дится только цветом переднего плана, оставляя фон как есть.  Та-
ким образом можно делать надписи НА рисунках, сквозь которые бу-
дет виден рисунок.

См. также: PAINT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
UPR                     (ввод преобразовывать в верхний регистр)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             UPR
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут UPR используется с полями ENTRY и TEXT для  преобразова-
ния всех введенных БУКВ в заглавные.

См. также: ENTRY TEXT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
USE                       (связать с полем переменную или метку)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             USE( іvariableі )
                  і label  і
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

variable            Метка переменной, принимающей введенные дан-
                    ные.

метка               EQUATE-метка поля или меню.

USE с параметром-переменной поддерживает поля ENTRY, TEXT,CHECK,
и RADIO (или STRING) OPTION переменной, которая обновляется  при
вводе данных. Когда поле завершено (завершен ввод данных в поле)
эта переменная получает введенное значение.

Для IMAGE-полей, USE(variable) задает переменную, которая содер-
жит PCX или GIF-образ для вывода. Обычно, такая переменная - это
MEMO-поле с атрибутом BINARY.

USE(label) предлагает способ  обращения к полю  операторами про-
граммы.Параметр label может быть использован для полей RADIO или
STRING OPTION, CHECK, TEXT и ENTRY. Метка должна  использоваться
для полей POINT, PAUSE и BUTTON в SCREEN-структурах, и для полей
MENU и ITEM в структурах PULLDOWN.

Пример:

    ROW(l,l)   ENTRY.USE(?FirstField)
    ROW(6,14)  ENTRY(@S24),USE(Name)
    ROW(8,16)  TEXT(2,20),USE(comments)
    ROW(10,8)  CHECK('Check String'),USE(CheckVar)
    ROW(12,20) PAUSE('Press any key to continue'),USE(?Pause)

См. также:ENTRY, TEXT, CHECK, OPTION, PAUSE, POINT, BUTTON,
EQUATE-метки полей

	     СТРУКТУРЫ PULLDOWN (выпадающие меню)

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PULLDOWN                           (структура "выпадающее меню")
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
метка    PULDOWN[,COLOR()][,KEY()][,іSINGLE()і][,SHADOW][,LOCAL]
                                    іDOUBLE()і
                                    і FULL() і
                                    і HALF() і
            [MENU()
               [INTEM()]
               [MENU()
                  [INTEM()]
               .]
            .]
         .
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

COLOR               Задает цвета вывода.

KEY                 "Горячая" клавиша для PULLDOWN-структуры.

SINGLE,
DOUBLE,
FULL,HALF           Тип рамки для выпадающих меню.

SHADOW              Если есть,то нужны тени под выпадающими меню

LOCAL               Указывает, как открывать PULLDOWN - на  пер-
                    вой строке физического или виртуального экра
                    на (оставляя экран в том же самом положении)

MENU                Подменю с отдельным выпадающим окошком.

ITEM                Элемент меню.

PULLDOWN описывает SAA/CUA-подобную структуры выпадающего  меню.
PULLDOWN-структуры задают несколько возможностей выбора из меню,
которые моожно активизировать при исполнении оператора ACCEPT.

Все MENU и ITEM  в структуре PULLDOWN нумеруются  отрицательными
числами в порядке, в котором они появляются в этой структуре, на
чиная с минус  единицы (-1). Когда  выбор сделан, функция  FIELD
возвращает номер выбранного елемента (ITEM).

В PULLDOWN-структурах есть два вида "горячих" клавиш. Первый тип
служит для перемещения по элементам меню, его "горячие"  клавиши
задаются вставкой амперсанда прямо перед нужным символом в стро-
ке для MENU или ITEM, при этом, при работе такой символ выделен.
Если же в строке нет амперсанда, то подсвечивается первый НЕпус-
той символ строки. Такие "горячие" клавиши используются вместе с
клавишей ALT для вызова полосы выпадающего меню если оно не вид-
но на экране в данный  момент (разумеется, меню уже должно  быть
открыто оператором OPEN) и/или выбора конкретного подменю (MENU)
или элемента меню (ITEM).

Второй тип горячих клавиш, это клавиши, задаваемые атрибутом KEY
для элементов MENU или ITEM. Они могут быть любыми  разрешенными
кодами клавиш (втч. и EQUATE) и вызывают  немедленное выполнение
связаного с ними MENU или  ITEM. Если атрибут KEY был  задан для
MENU или ITEM, то заданный  им код клавиши будет всегда  возвра-
щаться функцией KEYCODE() при завершении MENU или ITEM,  незави-
симо от того, какой клавишей был завершен этот элемент.

Пример:

PullDown  PULLDOWN                 !Полоса выпадающего меню
            MENU('File'),USE(?File)!Описываем подменю
              ITEM('Open'),USE(?FileOpen)
                                   ! элементы подменю
              ITEM('Close'),USE(?FileClose)
              ITEM('Save'),USE(?FileSave)
            .
            MENU('Options'),USE(?Options)
              ITEM('43/50 Line Mode'),USE(?OptLine)
              ITEM('Colors'),USE(?OptColor)
            .
            MENU('Quit'),USE(?Quit),KEY(CtrlQ).
!Этот элемент выполняется без подменю, прямо из полосы PULLDOWN
          .

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SINGLE, DOUBLE, FULL, HALF                 (виды рамок для меню)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SINGLE(color)
             DOUBLE(color)
             FULL(color)
             HALF(color)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

color               Код цветового стиля для символов рамки.

Эти атрибуты  задают, какой  тип символов  рамок будет использо-
ваться  для  всех  подменю  в PULLDOWN-структуре. Для отдельного
PULLDOWN-меню может быть задан только один из этих типов рамки.

     SINGLE  одинарные линии
     DOUBLE  двойные линии
     FULL    блоки полной высоты
     HALF    блоки полной высоты слева и справа, блоки  половин-
             ной высоты снизу и сверху.

Пример:

PullDown PULLDOWN,SINGLE(5)        !Рамка из одинарных линий
         .

См. также: Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
LOCAL                  (позиция, в которой открывается PULLDOWN)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             LOCAL
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут LOCAL указывает,  что PULLDOWN-структура открывается  на
первой строке физического экрана. Если он пропущен, то  PULLDOWN
открывается на первой  строке последнего открытого  экрана, если
это был виртуальный экран.

Первые  строки  физического  и  виртуального экранов различаются
только тем, что первая строка физического экрана всегда остается
на своем месте, в то время, как первая строка виртуального экра-
на может быть прокручена  за пределы экрана физического.  В этом
случае, она возвращается на место при обращении к PULLDOWN  если
PULLDOWN-меню описано БЕЗ атрибута LOCAL.

Пример:

PuIlDown  PULLDOWN,LOCAL  !Открывать на первой строке ТЕКУЩЕГО
			  !экрана

См. также: PULLDOWN

			Поля в PULLDOWN

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ITEM                                  (элемент выпадающего меню)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             ITEM(текст)[,KEY()][,USE()][,TOGGLE]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

текст               Строковая константа,  задающая выводимую  на
                    экран строку, связанную с ITEM.

KEY                 Задает код клавиши или одиночный символ, ко-
                    торый немедленно выполняет этот элемент.

USE                 EQUATE-метка меню.

TOGGLE              Этот элемент типа ВКЛ/ВЫКЛ.

ITEM описывает  выбор из  меню в  структуре PULLDOWN.  Текстовая
строка может содержать амперсанд, который означает, что  следую-
щий за ним  символ - "горячая"  клавиша для этого  поля. Нажатие
такой клавиши БЕЗ ALT  подсвечивает и исполняет данный  элемент.
Если в ТЕКСТе нет амперсанда, то в роли такой "горячей"  клавиши
выступает первый непустой символ ТЕКСТа.

Атрибут KEY назначает отдельную "горячую" клавишу для поля.  Это
может быть любой допустимый код клавиши, он также вызовет немед-
ленное выполнение элемента, независимо от того,показано PULLDOWN
на экране или нет. Если атрибут KEY задан для ITEM, то  заданный
им код клавиши будет всегда возвращаться функцией KEYCODE(), не-
зависимо от того, какая клавиша завершила этот элемент.

Полоска курсора подсвечивает отдельные ITEM-ы :) в структуре ME-
NU. Каждый ITEM может быть связан с PROCEDURE, или неким  кодом,
который надо выполнить при выборе этого элемента.

Пример:

Pul]Down PULLDOWN
           MENU
             ITEM('&GL'),USE(?GL),KEY(AltG)     !Hot key - Alt-G
             ITEM('A&R'),USE(?AR),KEY(AltR)     !Hot key - Alt-R
             ITEM('A&P'),USE(?AP),KEY(A]tP)     !Hot key - Alt-P
         . .

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
MENU                                 (подменю в выпадающем меню)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             MENU(текст)[,KEY()][,USE()][,COLOR()][,RIGHT()]
               [ITEM()]
               [MENU()]
                   multiple other ITEM and/or MENU statements
             .
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

текст               Строковая константа,  задающая  выводимую на
                    экран строку, связанную с MENU.

KEY                 Задает код клавиши или одиночный символ, ко-
                    торый немедленно выполняет этот элемент.

USE                 EQUATE-метка меню.

COLOR               Цвата экрана для выборов в этом подменю.

RIGHT               Указывает, что MENU появится на правом  краю
                    полосы меню на первой строке экрана.

MENU описывает  выпадающее подменю  в структуре  PULLDOWN. Когда
MENU выбрано, операторы MENU  и/или ITEM в структуре  MENU выво-
дятся в отдельном окошке (дропбоксе). MENU не обязано  содержать
в себе другие  операторы MENU или  ITEM. Текстовая строка  может
содержать амперсанд, который означает, что следующий за ним сим-
вол - "горячая" клавиша для  этого поля. Если MENU находится  на
полосе PULLDOWN, нажатие Alt вместе "горячей" клавишей подсвечи-
вает и выполняет MENU. Если меню находится в другом MENU, то его
выполнит нажатие "горячей"  клавиши без ALT.  Если в ТЕКСТе  нет
амперсанда, то в качестве "горячей" клавиши выступает первый не-
пустой символ  ТЕКСТа. Атрибут  KEY назначает  для этого подменю
добавочную "горячую"  клавишу. Это  может быть  любой допустимый
код клавиши, он  также вызовет немедленное  выполнение элемента,
независимо от того,показано PULLDOWN на экране или нет. Если ат-
рибут KEY задан для MENU, то заданный им код клавиши будет  все-
гда возвращаться функцией  KEYCODE(), независимо от  того, какая
клавиша завершила этот элемент.

Дропбокс для MENU  появляется прямо под  ТЕКСТом в полосе  PULL-
DOWN. Если выбрать клаишами ENTER или СТРЕЛКА ВЛЕВО вложенные  в
это подменю другие подменю,то они будут появляться справа от те-
кущего подменю. СТРЕЛКА ВЛЕВО возвращает в предыдущий дропбокс.

Пример:

PuIlDown PULLDOWN                 !Полоса PULLDOWN
           MENU('File'),USE(?File)!Выпадающее подменю
             ITEM('Open'),USE(?FileOpen)
                             !  этот элемент находится в подменю
             ITEM('Close'),USE(?Fi]eClose)
             MENU('Tools'),USE(?Fi]eTools) !Еще одно подменю
               ITEM('Rebuild Keys'),USE(?FileTooIsRebuild)
           . .                    !Конец обоих меню
           MENU('Quit'),USE(?Quit)
                    !Этот элемент выполняется из полосы PULLDOWN
         . .

		   Атрибуты полей в PULLDOWN

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
KEY                                    (клавиша быстрого выбора)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             KEY( іcharacterі )
                  і keycode і
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

character           Задает символ для выбора данного пункта меню
                    или SCREEN BUTTON. Этот параметр не чувстви-
                    телен к регистру букв.

keycode             Кларионовский  код клавиши или  EQUATE-метка
                    кода клавиши.

Атрибут KEY для элементов структуры PULLDOWN MENU, ITEM,  SCREEN
IMAGE или SCREEN  BUTTON задает "горячую"  клавишу для выбора  и
выполнения данного поля.  Такая "горячая" клавиша  отличается от
той, которая задается амперсандом тем, как она связана с  полями
MENU, ITEM или BUTTON. "Амперсандовые" "горячие" клавиши исполь-
зуются для ПЕРЕХОДА на поля типа MENU или ITEM. "Горячие" клави-
ши атрибута KEY используются дл НЕМЕДЛЕННОГО выполнения  связан-
ного с полем кода.

Если у какого-то поля есть  атрибут KEY, то по завершении  этого
поля, функция KEYCODE() ВСЕГДА вернет код клавиши, заданный этим
атрибутом, независимо от  того, какая клавиша  использовалась на
самом деле.

Пример:
PuIlDown PULLDOWN
           MENU('Options'),USE(?Options)
             ITEM('43/50 Line Mode'),USE(?OptLine)
             ITEM('Colors'),USE(?OptColor)
           .
           MENU('Quit'),USE(?Quit),KEY(CtrIX)   !Ctrl-X - ВЫХОД
         .
Screen SCREEN(5,15),CENTER
         ROW(2,3) STRING('OK to continue?)
         ROW(4,5) BUTTON(' OK '),KEY(EnterKey)   !Enter - OK
          COL(10) BUTTON(' Cancel '),KEY(EscKey) !Esc - отмена
       .

См. также: PULLDOWN, MENU, ITEM, IMAGE, BUTTON

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
RIGHT                                         (позиция для MENU)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             RIGHT
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Атрибут RIGHT  указывает, что  элемент меню  должен появиться на
самом правом краю полосы PULLDOWN. Этот атрибут игнорируется для
элементов меню, появляющихся в дропбоксах.

Пример:

PuIlDown PULLDOWN
           MENU('Options')
             ITEM('43/50 Line Mode')
             ITEM('Colors')
           .
           MENU('Quit'),RIGHT           !Поместить на самом краю
         .

См. также: MENU

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
TOGGLE                     (элемент-переключатель типа ВКЛ/ВЫКЛ)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             TOGGLE(varible)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

variable            Метка целочисленной переменной.

Атрибут TOGGLE для  элемента ITEM структуры  PULLDOWN, указывает
на то, что ITEM - переключатель. Когда ITEM включен,  VARIABLE=1
и после ТЕКСТА связанного с  ITEM появится значок (ы). Когда  же
ITEM выключен, VARIABLE станет равной нулю, а значок (ы)  исчез-
нет.

ITEM можно включить/выключить нажатием на нем клавиши ENTER, или
присвоением нуля или единице переменной VARIABLE из исполняемого
кода.

Пример:
LineMode        BYTE(1)          !Переключатель заранее включен

PuIlDown PULLDOWN
         MENU('Options')
         ITEM('43/50 Line Mode'),TOGGLE(LineMode) !Переключатель
         ITEM('Colors')
         . .

См. также: ITEM


Яндекс цитирования