Страниц (5): [1] 2 3 4 5 » |
|
Описание: Создание графического интерфейса и контролов: Dialog, Button, Static, Edit, Check, Combo. Считывание и запись в них данных. |
Поиск в теме | Версия для печати |
Kibor |
Отправлено: 28 Октября, 2013 - 16:38:39
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Данная версия Кибор обзавела скрипты и генерируемые EXE графическим интерфейсом и контролами, которые позволяют тесное двухстороннее взаимодействие пользователя со скриптом.
В частности появилось настраиваемое диалоговое окно и такие контролы:
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_выпадающий список
}
Сохранение настроек осуществляется в 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_выпадающий список
}
Так же есть возможность создания немодальных диалоговых окон для интерактивного управления работой ботов. Немодальные диалоговые окна. Интерактивное управление программой через диалоги.
////////////////////////////////////////////////////////////////////////////////
Добавил возможность выбора создания авто запуска скрипта при запуске EXE. То есть сразу запускается графический интерфейс... |
|
|
Kibor |
Отправлено: 05 Января, 2014 - 11:45:51
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
В данное время управление скриптом во время исполнения можно легко реализовать с помощью горячей клавиши. Вот пример как реализовывается такое управление. С помощью клавиш q, w, e можно во время исполнения выполнять одну из нужных функций fun1(), fun2(), fun3()
CODE:textbkcolor (65535,0);
l:
if (management()=='q')fun1();
if (management()=='w')fun2();
if (management()=='e')fun3();
goto l;
function fun1()
{
textout(0, 50, 50, " q ", 0);
beep(500, 200);
}
function fun2()
{
textout(0, 50, 50, " w ", 0);
beep(1000, 200);
}
function fun3()
{
textout(0, 50, 50, " e ", 0);
beep(2000, 200);
}
function management()
{
if (getkeystate(81)==1)return 'q';
if (getkeystate(87)==1)return 'w';
if (getkeystate(69)==1)return 'e';
return '0';
} |
|
|
RussianRemaker |
Отправлено: 02 Мая, 2014 - 05:08:18
|
Наблюдатель
Покинул форум
Сообщений всего: 26
Дата рег-ции: Февр. 2014
Репутация: 0
|
А можно ли добавить функции sendcontrol параметр удаления элемента из списка?
Например:
CODE:sendcontrol(COMBO_5, 5, -1);
Если последний параметр -1, то шестой элемент из списка удаляется.
И ещё, можно ли сделать так, чтобы при выборе элемента в первом списке, изменялись элементы второго списка сразу, а не после нажатия на кнопку?
Если это хлопотно, то можно и не делать, т.к. обновление списков легко реализуется при помощи галочки.
Если, галочка установлена, то нажатие кнопки срабатывает на обновление списков, если не установлена, то происходит дальнейшее выполнение скрипта.
Но, если бы сразу списки обновлялись, без лишних телодвижений, то было бы удобнее. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (5): [1] 2 3 4 5 » |
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0) |
« О программе Кибор » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|