Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (5): [1] 2 3 4 5 »   

> Описание: Создание графического интерфейса и контролов: Dialog, Button, Static, Edit, Check, Combo. Считывание и запись в них данных.
Kibor
Отправлено: 28 Октября, 2013 - 16:38:39
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 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. То есть сразу запускается графический интерфейс...
 
 Top
ArtChemist
Отправлено: 28 Октября, 2013 - 18:11:42
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2013  
Репутация: 1




Красотища Улыбка большущее спасибо!
 
 Top
Stanislaw
Отправлено: 25 Декабря, 2013 - 12:25:25
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 56
Дата рег-ции: Дек. 2013  
Репутация: 2




Данная окно предоставляет возможность предустановки некоторых параметров скрипта в начале работы. Будет ли подобное с управлением во время работы скрипта? К примеру нажатие на кнопку запускает внеочередно одну из функций.
 
 Top
Kibor
Отправлено: 25 Декабря, 2013 - 14:52:18
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Не знаю. Пока нет в этом необходимости. Возможно в дальнейшем будет, так же как и графические функции для реализации не только вывода текста на экран, но и изображений.
 
 Top
BioDread
Отправлено: 05 Января, 2014 - 04:47:53
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2013  
Откуда: Украина Кременчуг
Репутация: 0




Вывод информации и возможность управлять скриптом во время его работы с помощью такой вот панели была бы довольно приятна. Хотя запись статистики возможна и в файл, а взаимодействие со скриптом с помощью другого файла, с которого во время работы периодически считываются настройки. Значит действительно особой необходимости нету, но всё же удобнее форма чем текстовый файл)
 
 Top
Kibor
Отправлено: 05 Января, 2014 - 11:45:51
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 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';
}
 
 Top
Stanislaw
Отправлено: 05 Января, 2014 - 16:35:29
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 56
Дата рег-ции: Дек. 2013  
Репутация: 2




Спасибо за хороший пример.
function management() - в конце точка-запятая не нужна? В редакторе нет лингвистического анализа. Было бы быстрее находить подобные ошибки. Хотелось бы иметь справку в .chm формате под рукой с такими же подробными примерами.
 
 Top
Kibor
Отправлено: 05 Января, 2014 - 18:38:29
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Не нужна. Это не конец инструкции. После нее идет тело функции в скобках. По поводу примеров смотрите эту и эту тему. Там описано как можно быстро находить примеры.
 
 Top
RussianRemaker
Отправлено: 02 Мая, 2014 - 05:08:18
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 26
Дата рег-ции: Февр. 2014  
Репутация: 0




А можно ли добавить функции sendcontrol параметр удаления элемента из списка?
Например:
CODE:
sendcontrol(COMBO_5, 5, -1);

Если последний параметр -1, то шестой элемент из списка удаляется.

И ещё, можно ли сделать так, чтобы при выборе элемента в первом списке, изменялись элементы второго списка сразу, а не после нажатия на кнопку?
Если это хлопотно, то можно и не делать, т.к. обновление списков легко реализуется при помощи галочки.
Если, галочка установлена, то нажатие кнопки срабатывает на обновление списков, если не установлена, то происходит дальнейшее выполнение скрипта.
Но, если бы сразу списки обновлялись, без лишних телодвижений, то было бы удобнее.
 
 Top
Kibor
Отправлено: 03 Мая, 2014 - 19:08:04
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Удалить можно сделать. Изменять сразу по галке нет.
 
 Top
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by