Документация по Clarion

       

ACCEPT (обработчик полей экрана)



ACCEPT

ACCEPT ожидает от оператора (человека :) ввода в экранные поля или выбора из PULLDOWN.
В PULLDOWN-структуре, ACCEPT производит внутреннюю обработку выпадающих подменю. Из полей типа ITEM, могут быть выбраны только те, которые не запрещены оператором DISABLE. PULLDOWN-структура завершается только если был выбран элемент типа ITEM. По завершении, функция FIELD возвращает номер поля для данного ITEM.
В SCREEN-структурах, ACCEPT инициирует ввод в выбранное в данный момент поле. По умолчанию, выбор полей идет в том порядке, в котором они описаны в SCREEN-структуре. Можно, но не обязательно, выбирать конкретные поля оператором SELECT. Выбраны могут быть только те поля, которые имеют USE-переменную, НЕ имеют атрибута SKIP и не запрещены оператором DISABLE.
(С.П.А. - в дальнейшем, я буду писать не "запрещены о...", а просто "DISABLED" - англ. ЗАПРЕЩЕНЫ)
Для полей ENTRY и TEXT, ACCEPT подсвечивает поле, показывает USE-переменную, высвечивает курсор, разрешает ввод с клавиатуры и ждет действий оператор. Когда поле завершено нормально (не по ALERT-клавише), то введенное значение деформатируется, согласно шаблону поля, и автоматически переписывается в USE-переменную.
Для полей OPTION (STRING или RADIO) и POINT, ACCEPT подсвечивает элемент меню, разрешает ввод с клавиатуры и ждет действий оператора. Когда поле завершено, функция CHOICE() возвращает относительную позицию выбранного эелемента в OPTION- или REPEAT-структуре. Для полей типа STRING и RADIO OPTION, USE-переменная получает выбранное значение. Для полей типа POINT, индексная переменная структуры REPEAT, также, получит номер выбранного элемента.
Для полей типа PAUSE,ACCEPT показывает параметр оператора PAUSE, разрешает ввод с клавиатуры и ждет нажатия на клавишу. Любая клавиша завершит это поле, за исключением ESC или BackTAB для НЕ-CUA экранов.
ACCEPT производит внутреннюю обработку ESC и BackTAB только для НЕ-CUA экранов. Esc или BackTab заставляют ACCEPT выбрать для ввода предыдущее поле, или поле, заданное атрибутом ESC. Если такого поля нет, то ACCEPT издаст звуковой сигнал и останется на том же поле.
ACCEPT также проводит внутреннюю обработку полоски-курсора в полях типа OPTION STRING, OPTION RADIO, POINT и в листбоксах (без атрибута IMM) как для CUA- так и для НЕ-CUA экранов.
Пример:


Screen SCREEN(5,40),PRE(Scr),COLOR(1),ZOOM,CUA,SHADOW
ROW(2,5) ENTRY(@N3),USE(Ctl:Code)
ROW(3,5) ENTRY(@S30),USE(Ctl:Name)
ROW(4,15)BUTTON('OK'),USE(?OkButton),KEY(EnterKey)
ROW(4,25)BUTTON('Отмена'),USE(?CanxButton),KEY(EscKey)
.
CODE
OPEN(Screen)
LOOP
ACCEPT !Ввод - в каждое поле
CASE FIELD()
OF ?OkButton
EXECUTE DiskAction
ADD(Control)
PUT(Control)
DELETE(Control)
.
BREAK
OF ?CanxButton
IF KEYCODE() EscKey THEN RETURN.
. .



Содержание раздела