AskQuestion
Revision as of 08:41, 7 June 2019 by Admin (talk | contribs) (Created page with "{{infobox function |name=AskQuestion |object=Функции общего назначения |caption=Визуальные функции |type=1 |status=2 |db=0 |excepti...")
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;