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.
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
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"
Yup, something like that will work, but you want:
if ControlType[1,8] = "GROUPBOX"
Regards
Post removed by author
Yup, something like that will work, but you want:
if ControlType[1,8] = "GROUPBOX"
Regards
Shoulda gone to specsavers