| By Frederick Koh | Article Rating: |
|
| November 27, 2011 01:00 PM EST | Reads: |
7,244 |
By the time you are reading this, PB12.5 will have been released and work on PB15 well under way. A lot of exciting things have gone into the .NET version of PB but we still get requests for features to go into the Classic version of the product. Even though there was a lull in activity in PB12 Classic, we are back again in 12.5 - and we are not stopping. You will probably have seen Dave Fish's webcasts on plans for PB15 (his disclaimers apply here as well) and are hungry for details - I hope to address that in this article.
PB has been around a long time and has accumulated many quirks and inconsistencies. We also have feature requests that are almost as old as the product itself. Our recent releases have done a lot to address these issues, but there are still many features that either need to be updated or simply completed. It would be amazing if you can still get away with a new application today that used "traditional" MDI. I'll let you in on a secret - the toolbar in the IDE has the same implementation as the one in your application at runtime - the difference is that the one in the IDE has comboboxes. And there is no reason why only WPF should have the grid layout.
Docking, Tabbed and Floating Windows
We are adding two new WindowType values - mdidock! and mdidockhelp! -to the window object. Like the values - mdi! and mdihelp! - respectively, they allow child windows (sheets) to be opened with the OpenSheet functions. But these sheets will behave differently: they can dock, float and be tabbed like the windows you see in our PB.NET IDE (see Figure 1).

Figure 1
The OpenSheet function will be overloaded to allow you to specify how the sheet will be opened, whether tabbed, docked or floating. As in the PB.NET IDE, you can use the mouse to move and change the state (docked/tabbed/floating) of the sheets. You
can also pin the state of the sheet. We will also be providing functions to allow programmatically changing and pinning the state. Menus and toolbars work as they do in classic MDI. The active sheet menu and toolbars are displayed.
If you are using the "Custom MDI" technique of using a userobject in the MDI frame as a toolbar and explicitly positioning the MDI client area, the sheets will stay within the client area.
This means you can use this feature on existing MDI applications by changing the WindowType and very little else (see Figure 2).

Figure 2
Grid Layout
You have seen the grid layout for the window and userobject in PB.NET. There will be an equivalent feature in Classic. The window and userobject objects will get two new properties: gridrows and gridcolumns. These properties allow you to divide your window or userobject into rows and columns of cells. The rows and columns are resizeable with the splitters. Each cell hosts one control (which can be a userobject). The control always fills the cell (see Figures 3 and 4).

Figure 3

Figure 4
The openuserobject function will continue to work - its x and y arguments will be used to locate the cell to position the userobject. There will also be overloaded openuserobject versions to allow you to explicitly specify the cell. The userobject objects that you place in cells can themselves be multi-row and multi-column. And the number of rows and columns can be changed at runtime.
PB Controls in Toolbars
The original request was for specific controls - comboboxes, edits - to be allowed in toolbars. We decided to make the solution more general and as similar to windows and userobjects as possible (see Figures 5, 6 and 7). Why limit the toolbar? Instead
of comboboxes, why not a DataWindow with a single DDDW column? Why not a datepicker?

Figure 5

Figure 6

Figure 7
WPF DW - Keeping Up with the Pretty Sister
The Classic DW has been behind the curve with regards to what the WPF DW has accomplished. Be we are catching up. The WPF DW has native support for PDF - we are porting it to Classic. Like the new graph styles - that's in the works too for a later release. What we are aiming for eventually is being able to import a *.srd defined in PB.NET into Classic with almost complete functionality.
Moving Forward with the OS
We will be tracking what Microsoft does in Windows 8. Signs are that this is their designated OS for slates and tablets. Your 10-year-old applications may get a free facelift! 64-bit PB.NET is almost a done deal, but we get requests for support for Classic applications too so stay tuned.
Conclusion
I have to admit that when the "old" IDE was renamed "Classic," I wasn't too happy. But "Classic" has connotations of reliability and predictability - you know your old programs will continue working unchanged, and new features will always be available for use in these programs out-of-the-box. "Just add water" - I like to say. Not a bad proposition at all!
Published November 27, 2011 Reads 7,244
Copyright © 2011 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Frederick Koh
Frederick Koh is a Staff Engineer at Sybase, Inc., and has been a member of the PowerBuilder and DataWindow.NET development team since 2005. Frederick has over 14 years of IT industry experience.
![]() |
topwiz 11/23/11 12:50:00 PM EST | |||
As part of adding controls to the menu toolbar, you should look into adding controls to the mdihelp area. I have added controls to it using API functions but it would be better to have native support. |
||||
- Cloud People: A Who's Who of Cloud Computing
- Kevin Benedict’s What’s New in HTML5 – Week of May 19, 2013
- Cloud Expo New York: From Your Datacenter to the Cloud and Back
- Embarcadero Technologies Unveils Multi-Device, True Native App Development Suite
- Mobile Commerce News Weekly – Week of May 5, 2013
- Appeon 2013 - Product Release
- Mobile Commerce News Weekly – Week of April 28, 2013
- Mobile Health News Weekly – Week of May 5, 2013
- Mobile Health News Weekly – Week of May 26, 2013
- Mobile Health News Weekly – Week of May 12, 2013
- Mobile Health News Weekly – Week of April 28, 2013
- Transaction Processing Performance Council Announces Fifth Annual International Technology Conference on Performance Evaluation and Benchmarking (TPCTC 2013)
- Cloud People: A Who's Who of Cloud Computing
- Gradients, Not Glitz: Methods to Modernize PowerBuilder User Experiences
- Come on in, the Forums Are Fine…
- Global Mobile Security (mSecurity) Market 2013-2018
- Kevin Benedict’s What’s New in HTML5 – Week of May 19, 2013
- Whither Windows?
- Cloud Expo New York: From Your Datacenter to the Cloud and Back
- A Look at Appeon Mobile
- Enterprise Mobility Asia News Weekly – Week of April 7, 2013
- Embarcadero Technologies Unveils Multi-Device, True Native App Development Suite
- Mobile Commerce News Weekly – Week of May 5, 2013
- Appeon 2013 - Product Release
- Where Are RIA Technologies Headed in 2008?
- PowerBuilder History - How Did It Evolve?
- DDDW Tips and Tricks
- Cloud People: A Who's Who of Cloud Computing
- Dynamically Creating DataWindow Objects
- Working with SOA & Web Services in PowerBuilder
- OLE - Extending the Capabilities of PowerBuilder
- DataWindow.NET How To: Data Entry Form
- Custom Common Dialogs Using SetWindowsHookEx
- Dynamic SQL
- Office 2003 Toolbar: A New Look For Your Old PowerBuilder App
- Sybase ASE 12.5 Performance and Tuning


























