Редактировал(а) Edgar Allan Poe 2024/02/29 11:49

Скрыть последних авторов
writer 1.1 1 {{info title="**Внимание!**"}}
2 Вызов диалоговых окон из макросов доступен с версии PUMOTIX 3.5.0. Более ранние версии не поддерживают данный функционал.
3 {{/info}}
4
5 Диалоговые окна позволяют пользователю отправлять значения в макрос из интерфейса программы (до этого было несколько параметров, которые можно отправлять с помощью строки G-кода).
6
7 Функция вызова диалогового окна реализована через команду **ShowDialogSimple()** и предназначена для вызова окна, имеющего текстовое описание и несколько полей для ввода значения.
8
9 Пример вызова функции **ShowDialogSimple()**:
10
11 {{code language="lua"}}
12 local res,out1,out2 = ShowDialogSimple("Введите параметры","","")
13 {{/code}}
14
15 Результат такой команды представлен на скриншоте.
16
writer 3.1 17 [[image:PUMOTIX_Dialog_ru.png||data-xwiki-image-style-alignment="center" height="250" width="305"]]
writer 1.1 18
19 Пример общего вида функции:
20
21 {{code language="lua"}}
22 Bool result, String out1, String out2, ... ,String outn =
23 ShowDialogSimple(String label, String in1, ... ,String inn);
24 {{/code}}
25
26 |**Bool result**|переменная, принимающая значение //true//, если в вызванном окне была нажата кнопка «ОК», и //false//, если была нажата кнопка «Отмена».
27 |**String out1,String out2,..., String outn**|значения полей, которые были заполнены в диалоговом окне.
28 |**String label**|строка с описанием, которое появится в вызванном окне.
Edgar Allan Poe 4.1 29 |**String in1, ...,String inn**|строки со значениями, которыми будут заполнены по умолчанию поля в диалоговом окне. Количество полей, которые будут отображены в диалоговом окне, зависит от количества значений среди аргументов функции **in1, in2, ... , inn**.
writer 1.1 30
31 С помощью функции также можно выводить простые запросы типа **да/нет**. Для этого достаточно ввести один параметр, который выведется на экран в виде текста, и запросить результат в переменную. Пример:
32
33 {{code language="lua"}}
34 local res = ShowDialogSimple("Произошла ошибка. Всё равно выполнить задание?")
35 {{/code}}