Версия 2.1 от writer на 2023/09/12 16:56

Последние авторы
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
17 [[image:PUMOTIX_Dialog_ru.png||data-xwiki-image-style-alignment="center" height="300" width="366"]]
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**|строка с описанием, которое появится в вызванном окне.
29 |**String in1, ...,String inn**|строки со значениями, которыми будут заполнены по умолчанию поля в диалоговом окне.Количество полей, которые будут отображены в диалоговом окне, зависит от количествазначений среди аргументов функции **in1, in2, ... , inn**.
30
31 С помощью функции также можно выводить простые запросы типа **да/нет**. Для этого достаточно ввести один параметр, который выведется на экран в виде текста, и запросить результат в переменную. Пример:
32
33 {{code language="lua"}}
34 local res = ShowDialogSimple("Произошла ошибка. Всё равно выполнить задание?")
35 {{/code}}