How to throws events of elements of usercontrol to the parent HMI control/container/control?

60 views Asked by At

I've created a usercontrol with several control. Some of them used for input too, but there is only onscreen keyboard without possibilities the continuous visibility.

Some inputcontrols need only numerals, some others need only letter inputs. And of course I have to use 1+ instance of this usercontrol on the same HMI page.

Without usercontrol it is easy (but lots of mouse clicks or code typing :-) ) to create listeners for .onFocusIn/Out to make visible/hide the necessary keyboard. When the control defined in usercontrol the events are not public.

One solution is to create(raise) custom events for (instance of) usercontrol ie: .onNumericInputRequest/Closing and .onAlphabetInputRequest/Closing

How can I create custom events and rising those from onFocusIn/Out events of some control?

I've tried to create some events in "internal symbol", but it belongs to HMI not to instance of the usercontrol. For me is it not clear how define the "NumericInputRequest" class and it's parameters (ie: screencoordinates of source control)... And there are WriteToSymbol possibility among Actions and no Raise/ThrowEvent.

1

There are 1 answers

2
SIDDHANT BORA On

With Twincat HMI V.12.60.xx+ the system keyboard type on each input control can be customized.

There is an attribute 'Text' -> 'SystemKeyboardInputMethod' where you can choose if you want to show numeric or text keyboard for each input control. You can also decide to skip or none on any input if you like to handle it yourself with JS events.

Regarding your original question, it is not possible to create custom events in TcHMI engineering. Only possible solution is to program JS code behind. Or you can program an extended input control in a framework extension project. [https://github.com/Beckhoff-USA-Community/TE2000_TcHMI_AdvancedTextboxControl][1]