List.Select

From SunFlurry wiki
Revision as of 08:51, 7 February 2021 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  Select (Визуальный выбор значения)
Объект:Список
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Да

Функция предлагает пользователю визуально выбрать элемент списка в указанном режиме. В режимах выбора 1 и 2 элементы, имеющие значение "-" (строка), будут показаны как разделители. Элементы, являющиеся списками, будут показаны как подменю. Функция использует индексы иконок списка для отображения при выборе (0 -- иконка отсутствует).

Синтаксис

List.Select(<Значение>,<Режим выбора (INT,FORM)>=см. описание,<Заголовок окна выбора (STRING)>):<Позиция выбранного значения или ноль (INT)>

Аргументы

  • <Значение> - (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Переменная для получения значения, выбранного пользователем. Если значение не выбрано, переменная изменена не будет.
  • <Режим выбора (INT)> - (необязательный аргумент) По умолчанию будет использован режим 1, если количество элементов в списке не достигает 16, иначе будет использован режим 0. Если указан, режим выбора принимает одно из возможных значений:
    • 0 -- выбор с помощью окна со списком в нем.
    • 1 -- выбор с помощью всплывающего меню, привязанному к визуальному элементу, имеющему фокус.
    • 2 -- выбор с помощью всплывающего меню, выходящему рядом с последним нажатием клавиши мыши.
    • Визуальный элемент формы (FORM) -- выбор с помощью всплывающего меню, привязанному к указанному визуальному элементу формы. Если элемент принадлежит форме, не активированной в данный момент, форма будет активирована до вывода всплывающего меню.
  • <Заголовок окна выбора (STRING)> - (необязательный аргумент) Заголовок окна выбора, используемого в режиме 0.

Возвращаемое значение

Возвращает индекс выбранного элемента списка (начиная с 1) или ноль, если выбор не был произведен. Если выбор производится с учетом подменю, при успешном выборе, функция возвращает не число, а строку вида "<Позиция в первом списке>@<Позиция во втором списке>...".


Примеры

Знач:=0;
a:=List.Create("Пункт 1","Пункт 2","-","Пункт 3");
If a.Select(Знач,0,"Выберите пункт 2:")=0 Then
  Message("Пользователь отказался сделать выбор!");
  Exit;
EndIf;
Message("Пользователь выбрал: "+Знач);
//Добавляем второй список, как подпункт пункта 3.
a.Set(4,List.Create("Подпункт 3.1","Подпункт 3.2","Подпункт 3.3","Подпункт 3.4"),"Пункт 3");
Знач2:=a.Select(Знач,0,"Выберите пункт 3.4:");
If Знач2=0 Then
  Message("Пользователь отказался сделать выбор!");
  Exit;
EndIf;
Message("Пользователь выбрал путь: "+Знач2+", выбранное значение: "+Знач);