Здравствуйте, гость ( Вход | Регистрация )

> Плагин графического интерфейса
Cockney
сообщение 24.2.2016, 11:49
Сообщение #1


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22547
Пользователь №: 16.156



Набросал ради развлечения небольшой плагин, позволяющий общаться с диалогами любой сложности(но пока урезаные).

Ссылка(ЯДиск, надеюсь можно) : тык или Прикрепленный файл  Release0000.zip ( 93,47 килобайт ) Кол-во скачиваний: 18495


В архиве сам плагин и файл разметки. Плагин в Плагинс, а разметку рядом с пилотом.

Саму разметку пока не документирую(будет, если время позволит), но там несложно разобрать что к чему. Удаление полей чревато исключением(пока нет проверок). Желательно заполнять все поля, однако некоторые спокойно могут быть пустыми(какие именно, укажу возможно позже).

Небольшое описание :

Каждый параметр заключается в *. Например, так : *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

Вроде все работает, однако могут быть проблемы.


Если понравилось, предлагайте идеи. Может что-то годное и выйдет.
-------------------------------------------------------------
Архив версий:
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Cockney   Плагин графического интерфейса   24.2.2016, 11:49
Cockney   плагин то на делфи) --------- хотя,вроде он понима...   12.3.2016, 11:17
DarkMaster   А зачем тогда выспрашивал столько времени, как зав...   12.3.2016, 15:12
Cockney   так с++ так, больше для развлечения,я в нем не уве...   12.3.2016, 16:18
DarkMaster   кстати ты меня заставил задуматься... буст это по ...   12.3.2016, 17:41
Cockney   кстати ты меня заставил задуматься... буст это по...   12.3.2016, 21:42
cirus   Работает нормально, только при двойном клике в Ge...   12.3.2016, 20:34
Cockney   текст элемента там должен быть? ---- вроде пофикси...   12.3.2016, 20:59
Cockney   Апдейт. -Теперь Enable может принимать вместо им...   16.3.2016, 14:44
DarkMaster   имхо - уходить от манифеста. Если привязывать част...   16.3.2016, 19:26
Cockney   в том то и дело,когда думал о манифесте не знал о ...   16.3.2016, 19:57
cirus   В описание плагина надо дописать что нужно для его...   18.3.2016, 2:14
DarkMaster   редисты установить надо. Можно взять из моей темы ...   18.3.2016, 9:11
Cockney   Вообще, удивлен, что программа, собранная на делфи...   18.3.2016, 11:56
DarkMaster   Я лишь говорю о том, что это либа редиста. Ну а ч...   18.3.2016, 12:07
cirus   С другими такого не было после переустановки винд...   18.3.2016, 13:35
Cockney   скрин можно?   18.3.2016, 13:46
DarkMaster   Cockney, а ты в плагине дллки никакие не подключал...   18.3.2016, 13:53
Cockney   лично я - нет, сама дельфи , в теории может. ест...   18.3.2016, 14:11
cirus   Так выше скрин ошибки с заголовком: ТВ:uopilot236...   18.3.2016, 14:11
Cockney   Все, увидел. Не знаю как такое могло выдать.   18.3.2016, 14:21
Cockney   После установки требуемой либы что-то еще просил?   18.3.2016, 22:47
cirus   Я её не устанавливал. Скачал файл msvcr120.dll и ...   19.3.2016, 3:38
Cockney   тот баг повторялся?   19.3.2016, 6:55
cirus   Если ты про SetText, то сегодня вечером проверю, ...   19.3.2016, 11:09
mircha   всем привет, помогите сделать мини клиент для брау...   25.3.2016, 0:35
DarkMaster   Cockney, собери в кучу первый пост. А то скоро бол...   25.3.2016, 13:27
cirus   Старые версии вообще не актуальны. Можно оставить ...   25.3.2016, 14:09
DarkMaster   RE: Плагин графического интерфейса   25.3.2016, 14:13
cirus   Странно. Только что скачал, работает.   25.3.2016, 14:21
DarkMaster   Дернул, даже в папку отдельную положил копию пилот...   25.3.2016, 15:04
Cockney   Все понял, учту и сделаю. По поводу ошибки - ско...   25.3.2016, 15:08
DarkMaster   С запуском то что делать?   25.3.2016, 15:10
Cockney   xml взят отсюда?   25.3.2016, 15:17
DarkMaster   да.   25.3.2016, 15:24
Cockney   Не знаю. Тоже завел новую папку, скачал и все вста...   25.3.2016, 15:27
DarkMaster   вин7 x64. Количество функций совпадает с объявлен...   25.3.2016, 15:33
Cockney   Да. Да и не может быть в этом ошибки. Пилот получа...   25.3.2016, 15:35
DarkMaster   Может :) Сыпалось у меня из-за этого. Вообще надо...   25.3.2016, 15:47
Cockney   чтение начальных данных из xml и создание контроло...   25.3.2016, 15:57
DarkMaster   можешь в качестве теста оставить только заглушки и...   25.3.2016, 15:59
Cockney   т.е. вырезать весь код из инитплагин и оставить в ...   25.3.2016, 16:10
DarkMaster   Ну да. Чтобы понять в чем именно проблема. В систе...   25.3.2016, 17:29
Cockney   Так и не понял, как в личку прибить файл, поэтому ...   25.3.2016, 18:10
DarkMaster   вроде никак. По крайней мере вменяемыми методами....   25.3.2016, 18:19
Cockney   Все функции, передаваемые в пилот, доступны к эксп...   25.3.2016, 18:23
DarkMaster   Можешь дать функцию и объявление структуры? Можно ...   25.3.2016, 18:25
Cockney   Ок   25.3.2016, 18:28
DarkMaster   функцию без хмл кода.   25.3.2016, 18:29
Cockney   Походу поздно)   25.3.2016, 18:41
DarkMaster   Ну я как раз зашел еще раз написать про хмл после ...   25.3.2016, 18:43
Cockney   Так а все, вся функция и есть чтение хмл, ну не сч...   25.3.2016, 18:53
DarkMaster   Дык если не работает в виде пары строк, то эти пар...   25.3.2016, 18:54
Cockney   Как я могу понять, что проблема именно в них? Я ли...   25.3.2016, 18:56
DarkMaster   Ну дык если есть шапка без полезного когда, котора...   25.3.2016, 18:58
Cockney   Без тех строк.   25.3.2016, 18:58
DarkMaster   закинул 0.3.4.1 на чужой комп вин7 64 - та же сама...   25.3.2016, 19:24
Cockney   Дурдом. Я не знаю, честно. И повторить не получает...   25.3.2016, 19:26
DarkMaster   в обрезке же получилось.   25.3.2016, 19:33
Cockney   Ну, судя по обрезку, получается проблема в пилоте,...   25.3.2016, 19:38
DarkMaster   Учитывая, что плагины на плюсах гарантированно раб...   25.3.2016, 19:53
Cockney   Так,если бы что-то не шло - не работало бы вообще....   25.3.2016, 20:10
DarkMaster   еще тесты: почти чистая виртуалка вин7 32 - ошибка...   25.3.2016, 20:13
Cockney   как можно компенсировать кривые указатели?этож абс...   25.3.2016, 20:19
DarkMaster   Банально перезаписать некорректно выставленный ...   25.3.2016, 20:29
Cockney   да,4 про некорректный \0. по дефолту этот си...   25.3.2016, 20:42
DarkMaster   +   25.3.2016, 20:44
Cockney   изменил свой пост,был не внимателен. следователь...   25.3.2016, 20:45
DarkMaster   Виртуалку выдать?   25.3.2016, 21:16
Cockney   Результат или что?   25.3.2016, 21:33
DarkMaster   Виртуалку, где будет еррор воспроизводится. Челове...   25.3.2016, 22:39
Cockney   Так а на кой мне? Никаких полезных данных я не пол...   25.3.2016, 22:54
DarkMaster   Ну смотри. Было бы где тестить.   25.3.2016, 23:45
cirus   Проверил на втором компе, плагин работает. На обои...   26.3.2016, 19:04
Cockney   По моему я схожу с ума.... Сегодня имел : 3 ноу...   26.3.2016, 21:33
DarkMaster   вот поэтому я и предлагал выделить тебе виртуалку,...   26.3.2016, 23:06
Cockney   ты серьезно? ну не может же так быть ,что на столь...   26.3.2016, 23:11
DarkMaster   Ты думаешь, что я тебе вру что ли? В числе тестеро...   26.3.2016, 23:58
Cockney   Нет, не думаю) просто реально на издевку похоже. Д...   27.3.2016, 14:37
Cockney   Работа не заброшена) давит учеба. Скоро продолжу р...   5.4.2016, 16:14
DarkMaster   это гут   6.4.2016, 7:04
cirus   С запуском плагина решился вопрос?   6.4.2016, 11:07
DarkMaster   Да. Мой косяк) В свою оправдание могу лишь сказать...   6.4.2016, 11:21
Cockney   Ну, первый, наверно, не лагающий релиз. -Повысил...   23.4.2016, 22:17
Cockney   В связи с новой возможностью группировки функций п...   9.5.2016, 14:24
cirus   Не вижу проблем для перехода. Текущую версию плаги...   9.5.2016, 16:17
DarkMaster   +   9.5.2016, 18:14
Cockney   Скорее всего будем переписываться с нуля.   29.6.2016, 15:14
DarkMaster   Причины? Переосмысление?   29.6.2016, 15:42
Cockney   Ага, перфекционист во мне сидит. Да и костылей мно...   29.6.2016, 21:21
InG   Ребят, подскажите чо как делать, я даже пример не ...   1.12.2016, 1:00
cirus   Если архив взят отсюда https://forum.uokit.com/i...   1.12.2016, 2:11
InG   Если архив взят отсюда https://forum.uokit.com/...   2.12.2016, 0:59
cirus   Справки нет. Частично в первом посте написано, но...   2.12.2016, 2:10
InG   Справки нет. Частично в первом посте написано, но...   2.12.2016, 14:07
cirus   Можно просто получить текст из обоих edit. set ...   2.12.2016, 14:59
ivanTu   А как к примеру при клики по одной кнопке, изменит...   24.1.2017, 15:30
cirus   set %a GUI.GetAction () if %a [1 3...   24.1.2017, 15:52
ivanTu   Спасибо! Пытался по этому же принципу скрыть ...   24.1.2017, 16:04
cirus   Потому что такой команды нет.   24.1.2017, 16:16
ivanTu   То есть, кликнув по одной кнопки, изменить свойств...   24.1.2017, 16:22
3 страниц V < 1 2 3 >


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 8.7.2025, 1:38
Designed by Nickostyle