GROUPBOXEX (OpenInsight 64-bit)
At 19 FEB 2022 07:48:17PM Barry Stevens wrote:
I see a looming potential issue with procedures developed in OI9 for OI9 forms and their running on OI10 with the following issue:
When a form in OI10 is created with a groupbox I see the type shown as GROUPBOXEX.
I have routines checking if a field type is GROUPBOX this will work for converted OI9 forms as, for some reason, the converted groupboxes are still type GROUPBOX.
If a new form is created in OI10 with a groupbox for which call a OI9 created routine it will FAIL the GROUPBOX test.
Why did we change from GROUPBOX to GROUPBOXEX.
At 19 FEB 2022 09:42PM Carl Pates wrote:
Because they are two different controls with different behaviours:
GROUPBOX - works the same was as v9 - i.e. acts a a "sibling" parent for controls who's origin falls within it's bounds - it's more expensive to process it's "children" - i.e. we have to scan the entire form for controls you surround - this is slow on big forms with hundreds of controls - this can be optimized somewhat but then there are lists to maintain internally re. who owns what.
GROUPBOXEX - Basically a panel that looks like a groupbox and it's designed for true/parent child relationships which are much easier to manage - you always know who your children are for a start.
GROUPBOX is still available in v9 under "Legacy controls" - we couldn't just call the v10 groupbox "GROUPBOX" because of the way in which they behave.
So, no crisis, looming or otherwise - if you want to keep your own code the same just use the v9 "legacy" GROUPBOX, or you can use the new one and check for for GROUPBOXEX in your code as well.
(As an aside MS deprecated the Groupbox many years ago - that's why the borders are so hard to see in the visual styling - there are better options available these days).
Regards
At 19 FEB 2022 10:27PM Barry Stevens wrote:
Because they are two different controls with different behaviours:
GROUPBOX - works the same was as v9 - i.e. acts a a "sibling" parent for controls who's origin falls within it's bounds - it's more expensive to process it's "children" - i.e. we have to scan the entire form for controls you surround - this is slow on big forms with hundreds of controls - this can be optimized somewhat but then there are lists to maintain internally re. who owns what.
GROUPBOXEX - Basically a panel that looks like a groupbox and it's designed for true/parent child relationships which are much easier to manage - you always know who your children are for a start.
GROUPBOX is still available in v9 under "Legacy controls" - we couldn't just call the v10 groupbox "GROUPBOX" because of the way in which they behave.
So, no crisis, looming or otherwise - if you want to keep your own code the same just use the v9 "legacy" GROUPBOX, or you can use the new one and check for for GROUPBOXEX in your code as well.
(As an aside MS deprecated the Groupbox many years ago - that's why the borders are so hard to see in the visual styling - there are better options available these days).
Regards
Ok thanks.
At least I hope I have made people aware as IMHO it might not be obvious.
A good 'conversion ready' fix for OI9 routines would be along the lines of:
if ControlType[1,7] = "GROUPBOX"
At 20 FEB 2022 04:19AM Carl Pates wrote:
Yup, something like that will work, but you want:
if ControlType[1,8] = "GROUPBOX"
Regards
At 20 FEB 2022 04:38AM Andrew McAuley wrote:
Post removed by author
At 20 FEB 2022 04:51PM Barry Stevens wrote:
Yup, something like that will work, but you want:
if ControlType[1,8] = "GROUPBOX"
Regards
Shoulda gone to specsavers