УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Задание значения на сенсорной панели


Автор Сообщение
Сообщение создано: 22. 03. 2016 [16:41]
Daby
Evgeniy Ostrikov
Создатель темы
Зарегистрирован(а) с: 22.03.2016
Сообщения: 2
Укажите правильный путь.

Хочу реализовать задание значения для сенсорной панели с подтверждением изменений. Для этого создал специальный виджет (SetValue), который хочу вызывать при нажатии на "строке редактирования"(FormEl). В атрибуте "обработка событий" строки редактирования записал следущее:
ws_FocusIn::open:/pg_control/pg_SetValue

В итоге при нажатии на строку виджет открывается. Но при закрытии фокус возвращается обратно на строку редактирования, снова генерируется событие и снова открывает этот виджет. И так по кругу.
Подскажите пожалуйста как решить эту проблему или обойти её.

И ещё вопрос: Как задать место (координаты) где должен открыться этот виджет? У меня он постоянно открывается в левом верхнем углу.
Сообщение создано: 22. 03. 2016 [16:52]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Daby" wrote:

В итоге при нажатии на строку виджет открывается. Но при закрытии фокус возвращается обратно на строку редактирования, снова генерируется событие и снова открывает этот виджет. И так по кругу.
Подскажите пожалуйста как решить эту проблему или обойти её.

По событию нажатия/отпускания пробуйте, вроде они там сейчас должны проходить, для элементов формы.

"Daby" wrote:

И ещё вопрос: Как задать место (координаты) где должен открыться этот виджет? У меня он постоянно открывается в левом верхнем углу.

Включить сохранение положения окон, перетянуть куда нужно и там закрыть, далее будет открываться где закрылось.

Learn, learn and learn better than work, work and work.
Сообщение создано: 23. 03. 2016 [14:36]
Daby
Evgeniy Ostrikov
Создатель темы
Зарегистрирован(а) с: 22.03.2016
Сообщения: 2
"roman" wrote:

По событию нажатия/отпускания пробуйте, вроде они там сейчас должны проходить, для элементов формы.


Спасибо за быстрый ответ.
Но как я ни пробовал, у меня не получилось в строке редактирования (FormEl) получить ещё события кроме: ws_FocusIn, ws_FocusOut, ws_LnAccept на версии 0.9+r2341.

Посмотрел исходники и насколько смог понять, что только ws_FocusIn, ws_FocusOut присутствуют для всех типов FormEl. События ws_Bt{Press|Release|ToggleChange} работают только если FormEl имеет тип кнопка, а события key_mouse{...} только для "группы элементов" (Box).

Как решение пока рассматриваю создание в качестве "поля ввода" элемент Box с текстовым полем на нём. Тогда можно будет по событию key_mousePresLeft отследить область нажатия и вызвать виджет задания соответствующего параметра.
Или использовать всётаки виртуальную клавиатуру как описано тут http://oscada.org/ru/forum/posts/proekt/virtualnaja_klaviatura/ . Но с ней пока тоже есть вопросы удобства использования.

[Сообщение редактировалось 1 раз(а), в последний раз 23.03.2016 в 14:42.]
Сообщение создано: 23. 03. 2016 [21:47]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Daby" wrote:

Спасибо за быстрый ответ.
Но как я ни пробовал, у меня не получилось в строке редактирования (FormEl) получить ещё события кроме: ws_FocusIn, ws_FocusOut, ws_LnAccept на версии 0.9+r2341.

Включил, после того как нашёл причину артификатов из-за которых ранее выключил.

Learn, learn and learn better than work, work and work.



2457