В частности появилось настраиваемое диалоговое окно и такие контролы:
Static - Статичный текст, однако специальными функциями его можно считать или изменить.
Edit - Поле для ввода текста или чисел. Можно считать и изменить.
Check - Кнопка с галочкой. Можно считать статус и изменить.
Combo - Выпадающее поле со списком. Можно считать текст активного пункта или изменить его на другой указав в соответствующей функции или текст нужного пункта или его индекс. 0 - верхний. Вниз увеличивается.
Dialog - Является самим диалоговым окном на котором эти контролы распологаются.
Button - Кнопка для запуска скрипта.
Dialog и Button допускаются в единственном экземпляре.
Остальные контролы допускается до 30 каждого. Классифицируются по индексу от 0 до 29 включительно: STATIC_0, CHECK_5, EDIT_26...
Создание интерфейса происходит в основном коде с помощью специального блока:
Цитата:
CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
STATIC_0 "Статичный текст" 10 10 90 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "Текст по умолчанию" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY
CHECK_0 0 /*Выключена*/ "Включить опцию" 10 130 105 18 //ПозицияX ПозицияY РазмерX РазмерY
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список
}
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
STATIC_0 "Статичный текст" 10 10 90 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "Текст по умолчанию" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY
CHECK_0 0 /*Выключена*/ "Включить опцию" 10 130 105 18 //ПозицияX ПозицияY РазмерX РазмерY
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список
}
Сохранение настроек осуществляется в INITDIALOG
Этот блок не является исполняемым и может располагаться в любом месте скрипта. В нем не допускаются переменные. Только текст и числа. Потом взаимодействие с контролами осуществляется с помощью двух функций:
getcontrol - Считывает данные с конторола.
sendcontrol отправляет данные контролу.
getcontrol для Static, Edit, Combo возвращает string.
Для Static и Edit текст, для Combo текст активной строки в списке.
Для Check getcontrol возвращает 0 или 1 в зависимости от того стоит галка или нет.
Пример:
string активная_строка_списка = getcontrol(COMBO_0);
string текст_который _ввели_в_Edit = getcontrol(EDIT_6);
int число_в_Edit = formatsn(getcontrol(EDIT_25)); - Форматируем string в число
string текст_в_Static = getcontrol(STATIC_5);
int статус галки = getcontrol(CHECK_0); - 1 - есть, 0 - нету.
sendcontrol принимает string, int и double.
Пример:
sendcontrol(EDIT_0, "Пишем в текстовое поле текст");
sendcontrol(EDIT_12, 2013.56); Вводим в это же поле число 2013.56
sendcontrol(STATIC_0, "Пишем текст");
sendcontrol(STATIC_6, 56); Пишем в текст число
sendcontrol(CHECK_2, 0); Снимаем галку
sendcontrol(COMBO_2, 5); Установили активным шестой пункт меню в списке
sendcontrol(COMBO_2, "Пункт такой то"); Установили активным пункт в списке с таким текстом
sendcontrol(COMBO_2, "Пункт такой то", "Меняем название на это"); Меняет название пункта который имеет имя во втором параметре на имя третьего
sendcontrol(COMBO_2, 1, "Меняем название на это"); Меняет название пункта 1 (это второй будет с верху ) на имя третьего
Доступные команды находятся в меню на правой кнопке - Создание графического интерфейса.
Вставьте все команды по одной в блок и станет все понятно.
Функции getcontrol и sendcontrol в списке функций.
Блок графического интерфейса подсвечен светлым шрифтом и не исполняем во время работы скрипта. Служит только для создания контролов.
Вот код демонстрирующий чтение запись в контролы:
CODE:
if (formatsn(getcontrol(EDIT_0))==2013)//Если в поле EDIT 2013
{
sendcontrol(STATIC_0, 2013+5);//Отправим в статичный текст сумму 2013+5
sendcontrol(EDIT_0, "Посчитали");//Отправим в поле EDIT текст
}
else
{
if (getcontrol(COMBO_0)=="Выбор строки 3")//Если это второй запуск и в выпадающем меню уже строка 3
{
sendcontrol(COMBO_0, 1);//Установим выпадающее меню на вторую строку по ее ИНДЕКСУ (2 способ)
sendcontrol(CHECK_0, 0);//Снимаем галку
}
else
{
if (getcontrol(CHECK_0)==1)//Если галка "Включить опцию" есть
{
sendcontrol(EDIT_0, "Галка EDIT есть");//Отправим в поле EDIT текст
sendcontrol(COMBO_0, "Выбор строки 3");//Установим выпадающее меню на третью строку по ее ИМЕНИ (1 способ)
sendcontrol(STATIC_0, getcontrol(COMBO_0));//Отправим в поле EDIT текст
}
else
{
if (getcontrol(COMBO_0)=="Выбор строки 1")
{
sendcontrol(STATIC_0, "Галки EDIT нету");//Отправим в поле EDIT текст
sendcontrol(EDIT_0, getcontrol(COMBO_0));//Отправим в поле EDIT текст текщей строки в выпадающем меню
}
else
{
sendcontrol(STATIC_0, "2013+5 = ?");//Отправим в поле EDIT текст
sendcontrol(EDIT_0, 2013);//Отправим в поле EDIT число
}
}
}
}
CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
STATIC_0 "Статичный текст" 10 10 90 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "Текст по умолчанию" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY
CHECK_0 0 /*Выключена*/ "Включить опцию" 10 130 105 18 //ПозицияX ПозицияY РазмерX РазмерY
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список
}
{
sendcontrol(STATIC_0, 2013+5);//Отправим в статичный текст сумму 2013+5
sendcontrol(EDIT_0, "Посчитали");//Отправим в поле EDIT текст
}
else
{
if (getcontrol(COMBO_0)=="Выбор строки 3")//Если это второй запуск и в выпадающем меню уже строка 3
{
sendcontrol(COMBO_0, 1);//Установим выпадающее меню на вторую строку по ее ИНДЕКСУ (2 способ)
sendcontrol(CHECK_0, 0);//Снимаем галку
}
else
{
if (getcontrol(CHECK_0)==1)//Если галка "Включить опцию" есть
{
sendcontrol(EDIT_0, "Галка EDIT есть");//Отправим в поле EDIT текст
sendcontrol(COMBO_0, "Выбор строки 3");//Установим выпадающее меню на третью строку по ее ИМЕНИ (1 способ)
sendcontrol(STATIC_0, getcontrol(COMBO_0));//Отправим в поле EDIT текст
}
else
{
if (getcontrol(COMBO_0)=="Выбор строки 1")
{
sendcontrol(STATIC_0, "Галки EDIT нету");//Отправим в поле EDIT текст
sendcontrol(EDIT_0, getcontrol(COMBO_0));//Отправим в поле EDIT текст текщей строки в выпадающем меню
}
else
{
sendcontrol(STATIC_0, "2013+5 = ?");//Отправим в поле EDIT текст
sendcontrol(EDIT_0, 2013);//Отправим в поле EDIT число
}
}
}
}
CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
STATIC_0 "Статичный текст" 10 10 90 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "Текст по умолчанию" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY
CHECK_0 0 /*Выключена*/ "Включить опцию" 10 130 105 18 //ПозицияX ПозицияY РазмерX РазмерY
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список
}
Так же есть возможность создания немодальных диалоговых окон для интерактивного управления работой ботов. Немодальные диалоговые окна. Интерактивное управление программой через диалоги.
////////////////////////////////////////////////////////////////////////////////
Добавил возможность выбора создания авто запуска скрипта при запуске EXE. То есть сразу запускается графический интерфейс...