Многооконный интерфейс. Последовательность действий при перемещениях в окнах редактирования, страница 3

последовательности их задания в программе, а не предъявления на экране.

Отдельными объектами считаются не только поля/переменные, но и

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

отдельное представление на экране, пусть и организованные одной

командой @...GET, т.е. элементы вида Check Boxes, Invisible Buttons,

Push Buttons, Radio Buttons.

   Отдельные объекты могут регенерироваться с помощью команд SHOW OBJECT и SHOW GET. Эти команды не связаны с опцией SHOW команды READ. Основное их отличие - это способ указания обновляемого объекта. В первом случае - по его номеру, во втором -по имени и, возможно, внутреннему номеру.

SHOW OBJECT <выр N1>

     [ENABLE/DISABLE]

     [LEVEL <выр N2>]

     [PROMPT <вырС>]

     [COLOR <список цветовых пар>/COLOR SCHEME <выр N3>]

  Дополнительные  опции:

<выр N1> - абсолютный номер обновляемого объекта, который

  определяется порядком его описания на экране/окне.

PROMPT <вырС> - задает новую строку-приглашение, заменяющую сделанную

  ранее в GET-команде.

SHOW GET <переменная> [,<вырN1>]

    [ENABLE/DISABLE]

    [LEVEL <expN2>]

    [PROMPT <expC>]

    [COLOR <список цветовых пар>/COLOR SCHEME <вырN3>]

    Здесь <переменная> - имя обновляемой переменной/поля GET-объекта.

Если для данной <переменной> определено несколько объектов, можно

указать относительный номер <выр N1> обновляемого объекта внутри

данной GET-команды. Это гораздо удобнее, поскольку дает возможность

программисту не высчитывать номер  нужного объекта на экране, а в

случае изменения его положения не заботиться об изменениях

в программе.

  Следующая функция возвращает абсолютный номер GET- объекта по

заданному имени <переменной> из текущего или указанного <вырN>

уровня READ. Поскольку одной переменной может соответствовать

несколько объектов, функция выдает номер самого первого объекта,

определяемого данной командой  @... GET :

ОВJNUM(<переменная> [,<вырN>])

 Функция является обратной к функции OBJVAR()

OBJVAR([<выр N1>[,<выр N2>]])

и возвращает имя переменной/поля, связанной с GET- объектом номер

<вырN1>, находящейся на READ-уровне номер <вырN2>. Если параметр

<вырN2> опущен, возвращается имя переменной текущего уровня.

Если <вырN1> больше, чем имеется переменных на данном уровне,

возвращается пустая строка. Имя переменной возвращается с префиксом

"М.", а поля - с псевдонимом.

  Для установления номера текущего объекта можно использовать системную переменную

 _CUROBJ

  значение которой изменяется при переводе курсора на другой объект.

В свою очередь, присвоение переменной нового значения

(_CUROBJ=<выр N>) влечет перемещение курсора на номер <вырN>.

 Завершить выполнение READ можно по команде

 CLEAR READ [ALL]

 которая прекращает команду READ текущего уровня и передает управление

на предшествующий уровень READ (если есть).

Включение опции ALL вызывает завершение всех команд READ на всех

уровнях.

Пример .  Многооконный интерфейс

co=wcol()

ro=wrows()

co2=min(co,comax)

ro2=min(ro,romax)

co2=100

define window spr at 6,0 size ro2/2,co2 FONT System, 8 zoom grow;

 panel color RGB(0,0,0,220,220,220)

define window down at 0,0 size 3,co2  FONT “System”,;

 8 nozoom panel color scheme 3

activate window down top

@ 0.5,co2*0.01 get Ins picture "@*HN Ins" Size 1.5,co2*0.1 ;

valid add_spr() default 1 font “System”,10 color scheme 2 style "B"

@ 0.5,co2*0.21 get Edit picture "@*HN Enter" Size 1.5,co2*0.1 ;

 valid edit_spr() default 1 font “System”,10 color scheme 2 style "B"

@ 0.5,co2*0.51 get del picture "@*HN Del" Size 1.5,co2*0.1 valid ;

del_spr() default 1 font “System”,10 color scheme 2 style "B"

@ 0.5,co2*0.75 GET Exit default 1   PICTURE "@*BHT " + ;

(LOCFILE("exit.bmp","BMP|ICO|PCT|ICN","Where is exit?"));

SIZE 1.5,7,1 FONT “System”, 8 valid  exit1_spr()

browse window spr title "PROF Профессии(должности) (Сортировка: F1-по коду:F2-по назв.";

nomenu nowait   nomodify fields

kod_prof:H='Код проф.',;

naim:H='Название профессии',tip_prof:H='Тип профессии' font “System”,10 style 'N' valid exit1_spr();

 wHEN TTT()

read cycle modal with "PROF" valid exit1_spr()

do exit1_spr

return