|
Плагин графического интерфейса |
|
|
Cockney |
24.2.2016, 11:49
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Master
Сообщений: 1.399
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 21399
Пользователь №: 16.156
![](style_images/uokit/spacer.gif)
|
Набросал ради развлечения небольшой плагин, позволяющий общаться с диалогами любой сложности(но пока урезаные). Ссылка(ЯДиск, надеюсь можно) : тык или
Release0000.zip ( 93,47 килобайт )
Кол-во скачиваний: 18096В архиве сам плагин и файл разметки. Плагин в Плагинс, а разметку рядом с пилотом. Саму разметку пока не документирую(будет, если время позволит), но там несложно разобрать что к чему. Удаление полей чревато исключением(пока нет проверок). Желательно заполнять все поля, однако некоторые спокойно могут быть пустыми(какие именно, укажу возможно позже). Небольшое описание : Каждый параметр заключается в *. Например, так : *par1*. Параметры ЧУВСТВИТЕЛЬНЫ к регистру. Пробелы на концах обрезаются (для поддержки переменных). Доступные типы элементов: Form - само окно Button - кнопка Edit - поле ввода Text - текст Checkbox - флажок Сами функции : Код GUI.ShowForm (<Имя формы>) //Показывает форму с именем
GUI.HideForm (<Имя формы>) //Скрывает форму с именем
GUI.ActionExist () //получение флага события. Возвращает 0 или 1
GUI.GetAcion () //получение описания события. Вернет массив 1х3 с именами формы, компонента и описанием события.
GUI.Enable (<Тип элемента> <Имя формы> <Имя элемента> <Статус>) //включает/отключает элемент на форме. Статус принимает 0 или 1.
GUI.GetText (<Тип элемента> <Имя формы> <Имя элемента>) //вернет текст элемента.
GUI.SetText (<Тип элемента> <Имя формы> <Имя элемента> <Новый текст>) //устанавливает текст элемента
И небольшой скрипт управления : Код //Скрипт обслуживания оболочки set linedelay 5 //Очистка начального сообщения(пока так) set $a GUI.ActionExist () set #f 1 set logging clear //Начинаем while (#f = 1) //пока не прекратим set $act_ex GUI.ActionExist () //проверим наличие события if ($act_ex = 1) //если есть событие set %action GUI.GetAction () //получаем это событие //тут обработка событий if (%action[1 3] = BUTTON_CLICK) //если нажата кнопка(любая) set logging Произошел клик на кнопке с именем %action[1 2] end_if if (%action[1 3] = BUTTON_DBL_CLICK) //если дабл.клик кнопки(любая) set logging Произошел двойной клик на кнопке с именем %action[1 2] end_if if (%action[1 3] = EDIT_CHANGE) //если редактируется поле ввода set $txt GUI.GetText (*Edit* * %action[1 1] * * %action[1 2] *) set logging Новый текст поля %action[1 2] : $txt if ($txt = stop) //если введено стоп set $a GUI.SetText (*Form* *Main* *Стоп!!!!*) //установка заголовка set linedelay 50 //побольше задержка перед выходом set #f 0 end_if if ($txt = msg) //если введено стоп msg Введено msg end_if end_if end_if end_while exit end_script
Тестировано на XP,7,8,8.1 Вроде все работает, однако могут быть проблемы. Если понравилось, предлагайте идеи. Может что-то годное и выйдет. ------------------------------------------------------------- Архив версий:
|
|
|
|
|
![Ответить в эту тему](style_images/uokit/t_reply.gif) ![Открыть новую тему](style_images/uokit/t_new.gif) |
Ответов
cirus |
29.2.2016, 10:51
|
![](http://www.imageup.ru/img219/1921925/12270358.gif)
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26952
Пользователь №: 16.971
Возраст: 29
![](style_images/uokit/spacer.gif)
|
Цитата если это для едита,то свойство,позволяющее вмещать несколько строк в поле ввода. Символ перевода строки воспринимается какой-то? Типа \n? Еще такой момент: Код set $a GUI.Enable (*Button* *Main* *button* *0*) //выключить Выдаст ошибку, т. к неправильно указано имя. Меняем на: Код set $a GUI.Enable (*Button* *Main* *Button* *0*) //выключить И тоже выдаст ошибку, пока не перезапустишь пилот или плагин. Цитата Ну и в целом можно коснуться старой, но все еще болезненно актуальной темы контроля статуса: https://forum.uokit.com/index.php?s=&sh...st&p=157513Переменные пока не выведешь, но вот массивы можно начинать разгр<вырезано анти-матом>. В поля Edit и Text уже и так можно выводить переменные. Можно еще добавить 5й параметр для GUI.SetText <Цвет текста>. Код GUI.SetText (<Тип элемента> <Имя формы> <Имя элемента> <Новый текст> <Цвет текста>) Потом в описании плагина лучше исправить <> на **. Код GUI.SetText (*Тип элемента* *Имя формы* *Имя элемента* *Новый текст* *Цвет текста*)
|
|
|
|
Cockney |
29.2.2016, 18:19
|
![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif) ![*](style_images/uokit/pip.gif)
Master
Сообщений: 1.399
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 21399
Пользователь №: 16.156
![](style_images/uokit/spacer.gif)
|
Цитата(cirus @ 29.2.2016, 10:51) ![*](style_images/uokit/post_snapback.gif) Символ перевода строки воспринимается какой-то? Типа \n? Еще такой момент: Код set $a GUI.Enable (*Button* *Main* *button* *0*) //выключить Выдаст ошибку, т. к неправильно указано имя. Меняем на: Код set $a GUI.Enable (*Button* *Main* *Button* *0*) //выключить И тоже выдаст ошибку, пока не перезапустишь пилот или плагин. В поля Edit и Text уже и так можно выводить переменные. Можно еще добавить 5й параметр для GUI.SetText <Цвет текста>. Код GUI.SetText (<Тип элемента> <Имя формы> <Имя элемента> <Новый текст> <Цвет текста>) Потом в описании плагина лучше исправить <> на **. Код GUI.SetText (*Тип элемента* *Имя формы* *Имя элемента* *Новый текст* *Цвет текста*) 1)Вроде как да, \n 2)Пока только так, любая ошибка - смерть плагина. По этому я был за обращение по имени из GetAction 3)Будут отдельные команды для установки цвета, шрифта, размера 4)Это конечно на вкус и цвет, но <> намного визуально приятней, чем *, поэтому, в описании функций лучше использвать <>. Легче воспринимается. + я указывал, как передаются параметры.
|
|
|
|
Сообщений в этой теме
Cockney Плагин графического интерфейса 24.2.2016, 11:49 cirus Сделай время для двойного клика побольше, а то ино... 24.2.2016, 14:22 Cockney Время клика задаю не я, а система. Тут возможно с ... 24.2.2016, 14:31 cirus
Например в игре юзаются банки HP, MP и прочее. Ин... 24.2.2016, 15:07 Cockney Ну тут тогда подходят чекбоксы. выбираешь, что нуж... 24.2.2016, 15:35 cirus
С флагами понятно как включить/отключить блок код... 24.2.2016, 15:45 Cockney Теперь понял про что ты. Пока никак. Сейчас поигра... 24.2.2016, 19:20 Cockney Апдейт.
-Новые элементы : чекбоксы(Checkbox), тек... 25.2.2016, 22:52 cirus
Есть немного, галки с чекбоксов как-то вяло ставя... 26.2.2016, 3:40 Cockney Можно систему узнать?именно процессор и ос.
------... 26.2.2016, 11:37![](style_images/uokit/to_down_pipe.gif) Cockney А в чем проблема брать имя чекбокса из GetAction п... 26.2.2016, 11:45 cirus Запустил утром, уже нормально галки ставятся, но о... 26.2.2016, 11:41 cirus
Можно и так. Просто с заголовком удобнее, т. к. е... 26.2.2016, 12:25 cirus
Проверил. Так и есть.
Чекбоксы работают нормальн... 26.2.2016, 13:31 Cockney Хорошо. Я уж думал мой косяк. 26.2.2016, 13:35 Cockney По поводу чекбоксов : да, удобнее, если отображает... 26.2.2016, 19:34 Cockney Апдейт.
-Пофикшены несрабатывающие события
-Добав... 26.2.2016, 19:45 DarkMaster Ну и в целом можно коснуться старой, но все еще бо... 26.2.2016, 19:54 cirus
То что всё и так можно сделать это да.
Что виж... 27.2.2016, 3:51 cirus Двойной клик по тексту (label) копирует этот текст... 27.2.2016, 23:47 Cockney Вроде как нет.
-------
А вроде как бы и да. На ХР ... 28.2.2016, 12:35 Cockney Есть небольшой костыль. 28.2.2016, 13:37 cirus
Я и не знал что такое есть :) Обычно текст прост... 28.2.2016, 13:51 Cockney Я до сегодняшнего дня тоже не знал....инновации..
... 28.2.2016, 15:04 Cockney Апдейт.
-Теперь GetAction возвращает 4 элемента:
... 28.2.2016, 17:18 cirus
Спасибо. Так намного удобнее.
Да, также, если дв... 28.2.2016, 17:37 Cockney в целом работает нормально?тормоза,баги? 28.2.2016, 17:53 cirus
Пока только тестил что и как работает. Проблем не... 28.2.2016, 18:15 Cockney А к чему несколько то их?один плагин в теории смож... 28.2.2016, 19:02 cirus Я имел ввиду несколько разных плагинов. Например, ... 28.2.2016, 19:05 cirus
Для Edit работает, для других элементов, вроде ка... 28.2.2016, 21:24 Cockney для кнопки:
set $a GUI.Enable (*Button* ... 28.2.2016, 21:45 cirus
Проще было бы по имени, но для начала чтобы вообщ... 28.2.2016, 22:11 Cockney Странно, я не трогал Enable, но когда тестил он ра... 28.2.2016, 22:21 cirus
Теперь работает. 28.2.2016, 22:21 cirus
Будешь добавлять, сделай чтоб по имени тоже можно... 28.2.2016, 22:42 Cockney если это для едита,то свойство,позволяющее вмещать... 29.2.2016, 0:37 DarkMaster
Спорное утверждение. <> - является стандарт... 29.2.2016, 11:02![](style_images/uokit/to_down_pipe.gif) Cockney
нет настройки размера кегля
это что такое?т.е. ... 29.2.2016, 18:44 cirus
Для 99% людей, в том числе для меня, <> от ... 29.2.2016, 11:24 DarkMaster
Разве что местных и то сомнительно :) Если челове... 29.2.2016, 11:32 DarkMaster
Размер шрифта. Шрифт желательно иметь возможность... 29.2.2016, 18:58 Cockney могу,ошибаться,но шрифты так и накладываются на ко... 29.2.2016, 19:29 DarkMaster
Это свойства шрифта моноширный он или нет. В винд... 29.2.2016, 19:43![](style_images/uokit/to_down_pipe.gif) Cockney
Это свойства шрифта моноширный он или нет.
На ... 29.2.2016, 21:07 DarkMaster
По идее все, что нужно - это возможность задать ш... 29.2.2016, 22:49 cirus
set $a GUI.SetText (*Edit* *Main* *edit*... 1.3.2016, 2:17![](style_images/uokit/to_down_pipe.gif) Cockney
set $a GUI.SetText (*Edit* *Main* *edit*... 1.3.2016, 6:27 DarkMaster Можно попробовать 0x13, но скорее всего передаст с... 1.3.2016, 7:56 cirus
Да.
Hint aaa\nbbb
Для кнопки работает такой ... 1.3.2016, 10:47![](style_images/uokit/to_down_pipe.gif) Cockney мульти лайн и мульти текст отключаются тем, что му... 1.3.2016, 17:12 DarkMaster
Да ну щас. Это не более чем кнайтовский прасинг. ... 1.3.2016, 15:10 Cockney Копаюсь в прозрачности окон. Если главное окно про... 1.3.2016, 18:39 DarkMaster С гуями никогда не работал. Хотя вру - делал формо... 1.3.2016, 19:00 DarkMaster А если чайлды перебрать и поснимать с них прозрачн... 3.3.2016, 19:12 Cockney Не-а. Прозрачность лепится либо на все окно(родите... 3.3.2016, 21:22 DarkMaster а если вспомнить мобидика нашего? оверлеи? 3.3.2016, 21:38 Cockney что за мобидик? 3.3.2016, 22:52 Cockney а что оверлей?обычное окно же. 3.3.2016, 23:06 DarkMaster кхе... Оверлей сильно не обычное окно. Прорисовыва... 4.3.2016, 8:30 Cockney Я понял про что ты. Да, это реализуемо вроде на GD... 4.3.2016, 13:17 DarkMaster
На директе точно можно, на GDI до конца не уверен... 4.3.2016, 13:54 Cockney как это инпута не может быть?если в директ-приложе... 4.3.2016, 14:19 DarkMaster Инпута куда? Инпута в оверлей не может быть даже в... 4.3.2016, 15:46 Cockney Вот и на кой такие сложности? Плагин позволяет нас... 4.3.2016, 17:55 DarkMaster
Сначала думал решится все прозрачностью без замор... 4.3.2016, 18:36 cirus За час работы скрипта пару раз вылезла ошибка тако... 6.3.2016, 12:55 Cockney прикрепи пожалуйста xml.
----------
А если задержк... 6.3.2016, 13:23 cirus
Попробую как время будет. 6.3.2016, 13:50 Cockney Потестил. Гонял ровно час, баг не воспроизводится.... 6.3.2016, 14:58 cirus Тоже проверял сейчас, причём задержку в 0 поставил... 6.3.2016, 15:24 cirus Скорее всего из-за маленьких задержек были ошибки.... 6.3.2016, 23:13 Cockney вот этот второй скрипт работает вместе с основным?... 7.3.2016, 6:29 cirus
Отдельно.
Пару кликов по любой кнопке и будет та... 7.3.2016, 18:18 Cockney чет я даже не знаю на че думать.....помнится дарк ... 7.3.2016, 18:48 Cockney Хотя тут что-то другое. Возможно связанное с поток... 7.3.2016, 18:59 cirus Пока можно решить проблему таймером. Врят ли кто-т... 7.3.2016, 19:24 DarkMaster
Плагин общий для всех вкладок вроде. Т.е. если в ... 7.3.2016, 19:55 Cockney
если вопрос по созданию окна, то в инит его не на... 7.3.2016, 21:42 cirus На счёт этой ошибки: https://forum.uokit.com/index... 7.3.2016, 22:06 Cockney Чудеса. Плагин никак не связан с линейкой. Абсолют... 7.3.2016, 22:23 DarkMaster
Ну дык "если не ошибаюсь". Вроде послед... 7.3.2016, 22:36![](style_images/uokit/to_down_pipe.gif) Cockney
Вроде последующие тесты это опровергли...
Вот ... 7.3.2016, 22:37 DarkMaster самый простой способ проверить:
1 функция - записы... 7.3.2016, 22:39 Cockney Когда происходит событие(от 1 скрипта), плагин зап... 7.3.2016, 22:53 DarkMaster элементарно. больше окон - больше нагрузка на каме... 7.3.2016, 23:00 Cockney Да, но это сколько окон нужно?
+ плагин обрабатыв... 7.3.2016, 23:04 cirus
Запуск одного окна l2 может вызвать ошибку. Естес... 7.3.2016, 23:34 DarkMaster А запись и чтение одновременно не происходят случа... 8.3.2016, 9:41 Cockney В плагине?структура(это я так обозвал) на самом де... 8.3.2016, 11:24 DarkMaster очередь надо, чтобы исключить подобные варианты. 8.3.2016, 12:11 Cockney Эт понятно. Каким методом? читал про мьютексы, но ... 9.3.2016, 14:15 DarkMaster А там не все так просто. Можно еще натворить взаим... 9.3.2016, 15:20 Cockney Сильно загнул).
-------------------
По поводу пере... 10.3.2016, 18:28 DarkMaster Посмотри буст там есть готовое решение. Я с полгод... 10.3.2016, 18:57 Cockney Апдейт.
-Пофикшены клики. Теперь одиночный клик н... 11.3.2016, 23:17 Cockney Предлагаешь мне буст переписать?) 11.3.2016, 23:43 DarkMaster
В смысле? Я наоборот тебе предлагаю взять готовую... 12.3.2016, 7:41
3 страниц 1 2 3 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|