Arjan Jansen works in The Netherlands as a technical consultant.
His main area of expertise as a technical consultant is database designing, in combination with programming environments like Delphi and C++.
Arjan is the "security" officer of his colleague Dr.Bob
Today (1998/02/19) I visited a Borland conference where C++Builder 3.0 was introduced.
The presentation was presented by Musa Yildiz (Account manager client/server products) and Martin Pamdeth (Technical Business Development Manager), and was divided in two sessions.
In the first session a brief status report was given on the current situation at Borland and their strategic mission.
In the second session Martin Pamdeth showed some of the new highlights in C++Builder 3.0, which I will share with you later on.
Borland's aim is to provide programmers with powerful, multi-purpose tools, thus alleviating programming efforts.
This can be seen in Borland's tools like Delphi, and JBuilder which provide environments for creating not only GUI applications, but also database applications, web applications and furthermore allow the programmer to create their own components as well.
With C++Builder 3.0 Borland introduces this environment for the C++ language as well.
Figure 1 shows the positioning of the Borland tools over the different programming aspect.
Figure 1: Positioning of development tools per aspect.
In C++Builder 3.0 Borland hopes to alleviate many of the pains programmers suffer at the moment in their current programming tools.
Amongst these are visual application development, powerful debugging, productivity, database programming, and internet programming.
Many new features have been introduced in C++Builder 3.0.
Some of them have been inherited from Delphi 3.0, others are not present in Delphi 3.0 yet (maybe in Delphi 4.0 ?).
New features include:
- Advanced Project Management
- Decision support components
- Powerful debugging
- Adaptive compiler technology
- Internet components/wizards
- One Step ActiveX, ATL, and ActiveForms
- CodeInsight (create your own code templates)
- Packages (use shared packages to reduce your executable size)
- OWL and MFC 4.2 support for maximum reuse of existing code
In the next paragraphs I will highlight some of these features.
Compiler
The compiler has had over 15 optimizations for faster and smaller code.
Added is the integrated TASM (which is not shipped in the standard edition) and Intel-MMX support.
Also added is pragma support for conditional compilations.
Advanced Project Management
One of the nice new features of C++Builder 3.0 is the Advanced Project Manager which allows you to create project groups each containing one or more projects (see figure 2).
This way you can have both your DLL and its corresponding test program in one project group.
Although it is not as powerful as the project manager in the C++ 4.5 IDE it is much better than the ones I have seen in Delphi so far (I hope Delphi 4.0 will support this functionality as well).
Figure 2: Advanced project manager.
Decision support components
In the C/S version of C++Builder Borland offers 130 components including data-aware components, components for web development and decision support components.
The decision support cube is a very powerful component giving you the capability of having multiple views on your business data.
For instance let's suppose I want to see the amount of money I've paid for a given customer on a given shipping date.
I can do this by dropping a TDecisionQuery component named DecisionQuery1 on my form, right-click on it and open the decision query editor and enter the dimensions as shown in figure 3.
Figure 3: Dimensions entered in the Decision Query Editor.
Next drop a DecisionCube, a DecisionSource, a DecisionPivot, a DecisionGrid and a DecisionGraph onto the form and fill in their respective properties as shown in the table 1.
ComponentName | Property | Value |
DecisionCube1 | Dataset | DecisionQuery1 |
DecisionSource1 | DecisionCube | DecisionCube1 |
DecisionPivot1 | DecisionSource | DecisionSource1 |
DecisionPivot1 | Align | alTop |
DecisionGrid1 | DecisionSource | DecisionSource1 |
DecisionGrid1 | Align | alClient |
DecisionGraph1 | DecisionSource | DecisionSource1 |
DecisionGraph1 | Align | alBottom |
Table 1: Properties for the decision cube example.
If we now set the DecisionQuery1's Active property to true it will look like the screenshot in figure 3.
Presto, you now have live decision support at design time.
You can even change the view on your data by dragging the pivot points in the grid.
Figure 4: Decision cubes in action.
Debugger
C++Builder has been enhanced with a powerful debugger which incorporates ToolTip expression evaluation, a module viewer and a debug inspector.
ToolTip expression evaluation was introduced in Delphi 3.0 and has now been adopted by C++Builder 3.0.
This feature is quite handy if debugging, since you don't need to add watches anymore.
Just break out of your code, and place the cursor over the property or variable you would like to inspect.
With the module viewer you can see the currently loaded modules, and select one of them to display a list of methods used in this module.
If the module has been compiled with debugging information, and you have the source code, you can click on a method to go directly to the corresponding source code.
I am not quite sure if I will be using the module viewer a lot though, as the methods do not seem to be grouped logically, but in order of invocation which tends to confuse me more than help me.
Figure 5 shows an example of the module viewer and the ToolTip expression evaluation.
Figure 5: Module viewer and ToolTip expression evaluation.
Another feature is the debug inspector which shows you just about everything you would like to know about an object.
Not only can you view the properties and methods of the object, you can even inspect its private parts (as can be seen in figure 6).
Figure 6: The debug inspector
Conclusion
As a Delphi programmer who has not worked with C++ since version 4.5 of Borland C++, I am glad to see that with the newest addition of C++Builder 3.0 Borland has created the same look and feel I am used to in Delphi.
Many of the features in Delphi 3.0, such as Code Insight, ActiveForms, Packages, Visual Component Templates, and so on have been added to this release of C++Builder as well.
Furthermore, the OWL and MFC 4.2 support allows for maximum reuse of existing code.
The new and improved integrated debugger, in combination with ToolTip expression evaluations provide for a more powerful way of debugging your applications.
The Advanced Project Manager is a nice step towards integrating C++Builder and Delphi into one tool (one could imagine a C++ project and a Delphi project residing in one project group in one IDE).
The only drawback in C++Builder 3.0 (as in all C++ programming environments) is that the compile times still are too long to use it as a RAD tool (I still prefer Delphi for this).
If I do have to build my programs in C++ though, C++Builder 3.0 will be one of my favorites as programming environment.
This webpage © 2000-2017 by Bob Swart (aka Dr.Bob - www.drbob42.com). All Rights Reserved.