On the whole, my OpenInsight 10 (OI10) Beta 4 conversion has been a major success and I’m now using the application on a daily basis and working on the UI to make it cleaner using the new tools in OI10.
However, one gotcha which we should all already be aware of, is the splitter bars that were introduced in OI9. In that version, you simply dropped the controls on the form and it did its best to resize controls (usually edit tables). The downside for me was a flickering screen as the form constantly redrew whilst the bar was being dragged by the user.
In OI10, Carl has introduced a new ‘MOVE’ event which enables developers to very quickly and easily handle the resizing of the controls to best suit the application. In my example, I have a form with three panels (Groupboxes) and on each panel is an editable. The panels are then set to autosize and the following code is added to the upper and lower Splitter Bars to managed the moving of the bars as needed. The code below is taken from the Upper Splitter bar’s MOVE event.
Declare Subroutine Set_Property // Adjust the window's controls as the user moves the horizontal splitter bar. // Get the bar "thickness" barH = Get_Property( ctrlEntID, 'HEIGHT' ) // Get the bar initial position barP = Get_Property( ctrlEntID, 'TOP', YCoord ) // Move the bar Set_Property( ctrlEntID, 'TOP', YCoord ) // How far did the bar Move barM = barP - YCoord // Move the upper panel control valPanelUpper = @window:'.GRP_ALF30DAYSPLUS' Set_Property( valPanelUpper, 'BOTTOM', yCoord - 4 ) // Move the lower panel control and reset the height valPanelLower = @Window: '.GRP_ALF30' Set_Property( valPanelLower, "TOP", yCoord + barH + 4 ) valPanelHeight = Get_Property(valPanelLower, 'HEIGHT') Set_Property( valPanelLower, 'HEIGHT', valPanelHeight + barM ) return 1
Disclaimer: The above code is written by me as a non professional developer. Whilst it works, it is not optimised, does not include any error trapping and does not promote best practice. The above code includes comments to explain what it does.
I was initially disappointed that I would have to write code to manage the splitter bars, but now that this is done I really like the way that I have control over the controls that move and that the form no longer flickers when the splitter bars are moved.
For more details about OI10 changes, please check out Carl’s OI10 Blog.