Добрый день.
См. пример: https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
Добрый день.
См. пример: https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Привет.
Подскажите, есть ли способ перевести курсор (фокус ввода) сразу в текстовое поле?
Вот открылась визуализация N5 и на ней есть текстовое поле. И курсор (фокус ввода) уже там сразу и стоит. Так сказать без "трогательного прикосновения" или "мышечного движения".
На прикрепленном рисунке курсор должен попасть сразу же в поле "введите значение".
Спасибо.
ТекстовоеПоле.png
Последний раз редактировалось ВладОвен; 07.09.2022 в 12:29.
Добрый день.
Посмотрите этот пример:
https://forge.codesys.com/prj/codesy...nag/home/Home/
Несколько нюансов:
1. Пример сделан для одного клиента визуализации - пользователя таргет-визу.
Если, например, нужно активировать курсор для нескольких клиентов - то нужно получить их контекст (pClientData) и вызвать код примера для всех клиентов.
Как получить контекст клиента - см. здесь: https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
2. В коде обработки xClick замените VisuElems.VISU_ET_KEYUP на VisuElems.VISU_ET_KEYDOWN (так как в примере запись в элемент повесили на OnMouseDown - вероятно, по ошибке - хотели на OnMouseUp).
3. Рекомендую использовать VISU_SELECTION_TAB и для нужного элемента установить порядковый номер 0 - тогда будет достаточно один раз вызвать xTab (добавьте его в пример) и xClick.
2022-09-07_13-24-50.png
На досуге сделаю готовый пример на эту тему.
Последний раз редактировалось Евгений Кислов; 07.09.2022 в 16:12.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
В общем...
Протестировал я этот проект. Упростил его для понимания работы.
Есть два элемента для вызова: 1 и 2.
Вводите в поле номер и нажимаете клавишу и должен выбраться соответствующий элемент.
Это должно работать именно так?
Selection.project
Тогда проблема осталась.
Вот элемент номер 2 - это и есть поле, которое мне нужно выбрать и чтобы там сразу был фокус ввода.
И этот элемент выбирается, если задать его номер "2" и нажать клавишу "Выбрать граф. элемент".
Но курсор там все равно отсутствует. Выделение есть, а курсора нет!
Последний раз редактировалось ВладОвен; 07.09.2022 в 17:24.
"Проблема", которую вы наблюдаете - это последствие вашего "упрощения" исходного примера.
В посте выше я написал всю необходимую информацию.
Возможно, будет проще подождать, пока я сделаю свою интерпретацию этого примера.
Upd. - сделал свою версию примера, совместив пример ClientManager и SelectionManager.
https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
Для каждого подключенного клиента происходит выбор сиреневого прямоугольника (с ID = 24) и активация в нем ввода (в таргет-визу появляется Numpad, в web-визу - курсор).
Последний раз редактировалось Евгений Кислов; 04.03.2023 в 19:26.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Евгений! Более или менее заработало, но пока по такой схеме: VU.Visu_Globals.g_VisuManager.SetMainVisu(pClient, 'Vis2');
где pClient указывает на клиента визуализации, отобранного по нужному признаку.
Но как скрестить pClient с более новым VU.FbChangeVisu что-то пока не понимаю. Если будет врямя, покажите?
При вызове VU.FbIterateClients вы передаете на его вход itfIterationCallback имя экземпляра ФБ, реализующего интерфейс VU.IVisualizationClientIteration.
В примере такой ФБ называется VisuClientIteration. Методы этого ФБ вызываются автоматически.
При вызове метода HandleClient на вход itfClient подставляется экземпляр интерфейса очередного клиента визуализации.
Через этот интерфейс вы получаете доступ к данным клиента (в том числе, к указателю на его контекст - pClient) и можете определить, интересут ли он вас или нет.
Предположим, вам нужно вызывать VU.FbChangeVisu для конкретных клиентов.
Тогда вы должны создать ФБ с реализацией (EXTENDS) интерфейса IVisualizationClientFilter, объявить его экземпляр и передать его на вход FbChangeVisu.itfClientFilter при его вызове.
В блоке есть единственный метод - IsAccepted. Этот метод будет вызываться автоматически; на вход itfClient подставляется экземпляр интерфейса очередного клиента визуализации.
Для тех клиентов, которые вас интересуют - необходимо на выход метода присвоить TRUE.
Последний раз редактировалось Евгений Кислов; 08.09.2022 в 10:23.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Евгений!
> Тогда вы должны создать ФБ с реализацией (EXTENDS) интерфейса IVisualizationClientFilter, объявить его экземпляр и передать его на вход FbChangeVisu.itfClientFilter при его вызове.
Спасибо, займусь сегодня вечером. А не подскажите, HTML5 Control Editor в релизе SP18, он в бесплатной версии есть и полностью функционален?
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Привет.
Подскажите, а в таргет-визуализации можно установить параметр "ввод текста по молчанию" так, что бы он принимал ввод и с клавиатуры и с сенсора одновременно? Или же только клава или только сенсор отдельно?
И если совмещённого ввода нет, то как это можно обыграть, что-бы он был.
Например, надо ходить по меню, но при этом кое-где надо ввести с клавиатуры что-либо без сенсора.
Спасибо.