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


LIST (описывает список)


LIST(rows,cols),FROM()[,COLOR()][,TRN][,HLP()]
[ESC()][,IMM][,SKIP][,MSG()][,USE()][,HIDE]
[,FILL()][,COLS()][,FIX()][,HSCROLL ]
VSCROLL
HVSCROLL

rows Число строк (элементов) списка, выводимых на экран.
cols Число столбцов для вывода в этом списке.
FROM Метка QUEUE или элемента QUEUE для вывода Может быть типа GROUP.
COLOR Задает цвета.
TRN В графическом режиме в качестве цвета фона используется цвет перекрываемого изображения
HLP Идентификатор окна помощи, связанного с этим полем.
ESC Задает поле, на которое перейти при нажатии клавиш ESC или BACKTAB.


IMM Поле считается заполненным, как только указатель попадает на него.
SKIP Ввод данных в это поле невозможен.
MSG Текст, показываемый в строке сообщений экрана.
USE EQUATE-метка поля, которая позволяет операторам программы ссылаться на этот список.
HIDE Курсор-указатель будет виден только тогда, когда данное поле активно.
FILL Целочисленная константа или EQUATE-метка поля, задающая поле, которое принимает значение, выбранное из списка.
COLS Задает ширину столбца в списке. Содержит строковую константу или переменную, задающую число символов в каждом столбце, целочисленную переменную, в которую передается номер подсвеченного столбца, когда список завершен, и целочисленную константу, задающую расстояние между столбцами.
FIX Целочисленная константа, задающая число статичных строк в списке, что позволяет, при использовании атрибута COLS, помещать в список заголовки столбцов.
HSCROLLЛинейка горизонтальной прокрутки, занимающая самую нижнюю строку списка.
VSCROLLЛинейка вертикальной прокрутки, занимающая самый правый столбец списка.
HVSCROLL Поместить в список обе линейки прокрутки - горизонтальную и вертикальную.

LIST объявляет список в SCREEN-структуре. LIST выводит на экран rows элементов/полей из QUEUE, имя которой задается атрибутом FROM. Поле QUEUE выводится по одной записи в строке, в области, задаваемой параметрами rows и cols. Элементы очереди выводятся в список как есть, так что некоторые поля придется форматировать во время построения QUEUE.
Если у LIST-а есть атрибут IMM и QUEUE изменяется в то время, когда LIST ждет ввода от пользователя, надо использовать оператор DISPLAY для обновления списка.
Полоса курсора позволяет оператору выбирать элемент из списка. FILL-поле обновляется по мере продвижения курсора по списку. Список завершается нажатием TAB для CUA экранов (и TAB или ENTER для не-CUA экранов) и процесс обработки переходит к следующему полю для ввода. Двойной щелчок мышки также завершает список, но не переводит обработку автоматически на следующее поле. Функция CHOICE возвращает номер записи в QUEUE (значение возвращаемое функцией POINTER(queue)) соответствующий элементу, выбранному по завершении списка. Второй параметр оператора SELECT может быть использован для помещения курсора на НЕ первый элемент списка.
Список с атрибутом IMM, прокручивается горизонтально на 255 символов. Без атрибута IMM, он прокручивается в пределах самой длин ной записи в QUEUE (до 255 символов).
Если задан атрибут COLS, полоса курсора подсвечивает один столбец (заданный атрибутом COLS) за раз, и стрелки влево/вправо позволяют переходить от столбца к столбцу в пределах элемента списка. Атрибут FIX можно использовать для создания заголовков столбцов, которые прокручиваются только горизонтально, вместе со всем списком, не прокручиваясь по вертикали (они зафиксированы в списке). Пользователь не может отметить или изменить заголовки.
Пример:
SelectPart PROCEDURE
ListOue QUEUE,PRE(Lst) !Очередь для номеров З/Ч
PartNo STRING(10) ! отформатирована для
. ! вывода на экран
Screen SCREEN(20,30),PRE(Scr)
ROW(3,45) ENTRY(@slO),USE(Trn:PartNo),SKIP
ROW(4,45) LIST(10,10),FROM(Lst:PartNo)|
,FILL(?Trn:PartNo),USE(?PartList)
.
CODE
SET(PartsFile) !Строим QUEUE для LISTбокса
LOOP UNTIL EOF(PartsFile)
NEXT(PartsFile)
IF ERRORCODE() THEN STOP(ERROR()).
Lst:PartNo = Par:PartNo
ADD(ListOue,Lst:PartNo)
IF ERRORCODE() THEN STOP(ERROR()).
.
OPEN(Screen) !Теперь откроем экран и...
ACCEPT ! выбор за пользователем!
См. также: QUEUE, SELECT

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