Rathinagiri wrote:IMHO, the data of hidden controls can be stored in a variable (aReturn) and returned back as such. No requirement of defining and hiding the controls.
In all these days, I made tests and I have reviewed your proposal which I supposed to be a good alternative.
But before we decide something, let me explain some important points, around hidden controls.
I'm working basically with tree situations to grids editing and when be hiden or need to be hiden:
- When Column Widths is equal to 0 (zero). This can it be one or could be more than one column. this we have to take in count.
- When Grids is using images at first column. Which is needing to keep retrocompatibility. And also its column width mosthly is not with 0 (zero) value. You can start defining with 0 (zero) but it will depends for image width and listview will make an automatical width column adjustment (this is internal behaviour).
- When Grids uses the new way of images or checkboxes at column as index. This sub-itens are not displayed but really exists. Images probably will not needed to be displayed at InputWindow but the unique CheckBox should be displayed.
Hiding controls, IMHO will give more effective access to users when it be accessed by UDF because InputWindow can be execute specific user procedures, like changing colors/fonts, like enable/disabling controls, actioning other methods like: LOSTFOCUS, GOTFOCUS and ENTER for example. And making events in specific control too. It's very powerful to count with UDF in InputWindow, only depends from developer's creativity. I do not discount the possibility that the programmer need to apply any conditions in editing through these hidden columns. Therefore, this information should be easily accessible.

- Screen2.png (39.25 KiB) Viewed 5577 times
There is also to be considered
_InputWindowOk() after user confirmation at exit of InputWindow and it shall take all listed and by scanning controls. This procedure, will returns an array and if we add a new array (aReturn as you indicated), will be necessary to compose from two arrays to only one as return. So in this way, will be necessary to include in your aReturn an element position for the new array.
Let's say for example aReturn:={{<nPos>,<xValue>},{<nPos>,<xValue>}}
Following this think, will be dificult to work with column index and it properties according columns' grids. Will be very hard to exempt columns when be not required to be displayed.
Keeping this hiden data in hidden controls, will be easier, very practical when it be required for UDF processing and also will not requires a final array composite.
I suggest for keepping hidden column in hidden controls but not occupying any space for aesthetic reasons.
See my suggestion in images:

- Screen3.png (23.27 KiB) Viewed 5572 times
That's incridible how Grids are so complex control. Can I go ahead with my thinking or have you ane better idea ?