Difference between revisions of "AskQuestion"

From SunFlurry wiki
Jump to: navigation, search
(Created page with "{{infobox function |name=AskQuestion |object=Функции общего назначения |caption=Визуальные функции |type=1 |status=2 |db=0 |excepti...")
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:43, 7 February 2021

  AskQuestion (Визуальные функции)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число
Визуальность:Да

Функция выводит модальное окно с текстом вопроса со стилем и кнопками, заданными вторым аргументом. При необходимости, нужную кнопку можно выделить, как кнопку по умолчанию. Пользователь не может закрыть окно, без выбора одной из кнопок, идентификатор которой будет возвращен в результате функции. Для задания режимов и кнопок диалога рекомендуется использовать константы диалогов.

Синтаксис

AskQuestion(<Текст вопроса (STRING)>,<Тип диалога и его кнопки (INT)>,<Индекс кнопки по умолчанию (INT)>=1):<Идентификатор выбранной кнопки (INT)>

Аргументы

  • <Текст вопроса (STRING)> - Тестовое представление аргумента используется как текст вопроса.
  • <Тип диалога и его кнопки (INT)> - Задает тип диалога (стиль выводимого окна) и количество тип кнопок в диалоге. Для возможных значений, см. Константы диалогов. Необходимо сложить константу стиля окна (Q_WARNING, Q_INFORMATION, Q_QUESTION и Q_STOP, либо 0 для отсутствия стиля) с константой типа используемых кнопок (Q_OK, Q_OKCANCEL и т.п.), чтобы получить диалог требуемого вида. Пользователь не сможет закрыть окно диалога без того, чтобы нажать на одну из его кнопок.
  • <Индекс кнопки по умолчанию (INT)> - (необязательный аргумент) Индекс кнопки, которая получит фокус в момент вывода диалога. По умолчанию первая кнопка диалога. К примеру, если используется диалог с кнопками Q_YESNOCANCEL, третьей кнопкой будет "отмена".

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

Возвращает число, тип выбранной кнопки. Для идентификации числа рекомендуется использовать константы типа R_YES, R_IGNORE и пр. (см. Константы диалогов).


Примеры

//Выводит диалог типа "вопрос" с кнопками "да" и "нет", при этом кнопкой по умолчанию будет кнопка "нет".
//Если пользователь не нажал на кнопку "да" в процессе выбора, завершает работу функции
If AskQuestion("Ошибка при выполнении обработки, игнорировать и продолжить?",Q_QUESTION+Q_YESNO,2)<>R_YES Then
  Exit;
EndIf;

//Выводит диалог типа "предупреждение" с кнопками "да", "нет" и "отмена", при этом кнопкой по умолчанию будет кнопка "да".
//Если пользователь нажал на кнопку "отмена" в процессе выбора, завершает работу функции с результатом 1
//Если пользователь нажал на кнопку "да" в процессе выбора, помимо разблокировки, документы будут также открыты.
а:=AskQuestion("Некоторые из заданий, с которыми вы работали, остались заблокированными. Желаете открыть их, чтобы продолжить работу?",Q_WARNING+Q_YESNOCANCEL);
If а=R_CANCEL Then
  Exit 1;
EndIf;
For i:=1 To спБлокировка.Size() Do
  зДО:=спБлокировка.Get(i);
  зДО.Unlock();
  If а=R_YES Then
    If AskQuestion("Открыть задание "+зДО+"?",Q_QUESTION+Q_YESNO)=R_YES Then
      OpenObject(зДО,0,1);
    EndIf;
  EndIf;
EndDo;