ABC for Delphi


Release 6.0.3 - 22 February 2002

Getting Started

Installation Tips and Troubleshooting

What's New in ABC Version 6

Version 5 History

Version 4 History

Getting Started

There are many sources where you can browse for information about ABC 6 features and component details.

  1. If the runtime demonstration program is installed by your setup program, the last page of the setup dialog shows an "Explore" button to launch the demo program.  You can also run this from the Start menu, or from within the Delphi IDE.

  2. The ABC component hint browser is installed in your IDE:

  3. In Delphi 6 you will also find a new Object Inspector property category for ABC for Delphi properties.   These are component properties we have identified as unique or significant to the ABC components.

  4. Source for the main demonstration program is installed in the abc6\demo\abc subdirectory.  There are also 90 other sample programs in the abc6\demo path, together with batch files to compile them all from the command line (set up for Delphi 6).

  5. There is a tutorial for some of the DB Navigation components, described in the printed manual and in the abc6.pdf file.  This application is also found in the abc6\demo\tutorial subdirectory.

  6. In the Pro and Runtime versions, the abc6\Adapters subdirectory contains examples of different database connections using the new dataset adapter framework.  This path also includes the source code for all third party dataset adapters, which can be copied into your application.

  7. When you are working with ABC in the IDE, the abc6.hlp file contains context sensitive help links for all components.


Installation Tips and Troubleshooting

Do you have all the files you need installed?

If you have installed ABC from the Companion Edition or CD-ROM version then your installation will be complete after running one setup.exe program.

If you download the setup programs from our web server, they are partitioned into separate programs, so you can just download the files that change in an update release, or for your version of Delphi or C++ Builder. 

You need to download all parts needed for your installation.  For example, a full install of ABC 6 Pro Version into Delphi 6 requires the following files:  setup.exe,  abc6demo.exe, abc6ds.exe, abc6da.exe, abc6d6.exe, abc6sc.exe. The web setup.exe program can automatically run all setup parts it finds in the same directory.

Version mismatch problems loading the IDE?

A frequent cause of errors is trying to load incompatible package versions.  This might be reported as a missing function entry point not found in a required package, or as "a device attached to the system is not functioning". 

This could have two common causes:

In the first case, just answer No to all the version errors when Delphi asks if you want to load the package next time.  After all the errors, the new installed ABC packages should work properly.

In the second case, you may need to check versions and install additional Update Packs.  We always endeavour to ship our software built for the latest shipping release of each version of Delphi or C++ Builder, with all Update Packs applied. 

Our current Build versions can be checked against the details in your About Box:

Delphi 4 Version 4.0 Build 5.104, Update Pack 2 or 3; Delphi 5 Version 5.0 Build 5.62; Delphi 6 Version 6.0 Build 6.240 Update Pack 2; C++ Builder 4 Version 4.0 Build 14.11 Update Pack 1; C++ Builder Version 5.0 Build 12.34; C++ Builder Version 6.0 Build 10.155 or higher.

If you do not have a corresponding version and update packs where required, please check the latest updates available from If you have a higher version than these, please check our web site for updates and then contact us at

Problems with Corrupt Component Palette Bitmaps?

This problem has been reported to us on a few occasions, where it started to occur just after installing ABC.  Borland have identified this as a known problem with the Microsoft ImageList common control and some video drivers: 

"Some older video drivers (S3 Virge GX, Diamond Viper, Riva TNT, Matrox Millenium, and others) have trouble handling the quantity of images that the Delphi IDE's component palette places in its internal ImageList control. This can cause the component icons to appear shifted or corrupted in the IDE component palette. The solution is to contact your video card vendor for an updated video driver. At the time of this writing, all the video drivers known to exhibit problems with
the Microsoft ImageList control have been updated with fixes by the video card vendors.   You can also work around this ImageList problem by reducing or disabling video hardware acceleration in your Windows configuration settings. For instructions, consult your operating system and video hardware documentation." (from Delphi 5 readme.txt)

Other Possible Causes of Installation Problems

Manually Removing or ReInstalling ABC Design Packages

In most cases you can add, disable or remove ABC design packages through the IDE.  There is one package dclABCxx which is required by all others.  It must be installed first when reinstalling the IDE packages by hand.  All our IDE packages follow the Borland naming convention of dcl...  Note our design packages have the same name in multiple versions of Delphi/C++ Builder.

For more details, see New Packages in ABC Version 6.

Compiler Errors Using the Companion Edition - "Cannot find file"

The "Lite" versions of ABC do not contain any dcu files.  So you must compile all projects with the Project|Options|Packages - Build with Runtime Packages checkbox checked.  The package names list should also include the appropriate runtime package - ABCC for Delphi 6, ABCC50, ABCC40, etc.


What's New in ABC Version 6

Enhanced Components in Release 6.0.3:

This release supports Delphi 6 Update Pack 2, and C++ Builder 6.



TabcWinMsgBox, TabcWinAbout

Added these legacy components back into ABC installation, it appears they were more widely used than expected.


Added CancelButton and DefaultButton properties.


Added published DisplayOptions property. This is a persistent class of properties to set the position, size, color and scrolling of the help window. It is even possible to embed the help within another parent form.

TabcButtonBar and TabcButtonList

Added features to save and restore the layout of pages and buttons. 

Set the TabcButtonBar.FileName property to allow automatic save and restore of state information, or call these public methods for custom storage: SaveToFile, SaveToStream, LoadFromFile, LoadFromStream. The stored data is in binary format like a .dfm file. The following components are stored: TabcButtonBar, each TabcButtonPage, and any control on the TabcButtonPage to a single level of parentage, including TabcButtonList.

Added drag and drop events on TabcButtonList. Previously these were not published because drag/drop is used internally for sorting the buttons.

Implemented the TabcButtonBar.Options value abbDragTrack - if this is in the Options, buttons in a buttonlist can be dragged to different pages, otherwise dragging is only possible within the current page.

TabcPicSpeedBtn, TabcPicBtn, All DBNav button classes

Added a WordWrap boolean property to support multiline button captions containing carriage return characters #13. The default Wordwrap is false, the same as the existing behaviour.

TabcnpSQLStartTrans, Commit and Rollback buttons

Added features to the Client Dataset Adapter layer to enable these buttons with client datasets and server transactions.


Added an OrderedControls property.


There is a singleton instance of this component in abcnp unit, named NavPanelNotifier. Added two public TNotifyEvents, OnActiveDataSourceChange and OnActiveFieldChange.

Runtime Packages

The same ABC runtime packages are now shared between Delphi 6 and C++ Builder 6, to reduce disk space requirements slightly.

Bugs Fixed in Release 6.0.3:




Fixed a bug causing "Control has no parent window" error trying to create a component instance at design or runtime.


Changed the SetDefaultColors method to also initialize the associated color values. Otherwise a runtime index range error can occur.

Modified the SelectedColor property, so that the control's OnChange event occurs when SelectedColor is changed. Previously this property value could be changed without any event occuring.

When the control selection is changed using a mouse click or the keyboard arrow keys, both the OnChange and OnClick events occur.


Fixed a small bug causing apparent 100% cpu utilization when the machine is idle and a menu is open. (CPU use only occured when there were no other applications to run).

TabcToolbar Edit and DBEdit Controls

Fixed a bug causing border painting error when enabled toggled at designtime.

Bugs Fixed in Release 6.0.2:

This release is for C++ Builder 6, Build 10.128. For the C++ Builder Companion CD only. Following is a list of component bugs and features also updated in this release.




Fixed error sending mail message to Microsoft Outlook mail client. The mail client command line is now correctly derived from registry information.


Added DefaultButton and CancelButton properties.


Fixed a bug painting an offscreen image of a listbox with no items (used in transition effects).


Fixed a bug with this component using a PopupMenu where the menu did not close automatically when clicking elsewhere on the desktop.


Fixed a problem freeing dynamically created forms when changing the active page.


Fixed a problem where a control on a page of the button bar needed to be clicked twice to get the focus and process a click event.


Fixed a bug causing a validation error message on zero dates ("you must be in checkbox mode to show this date"). Changed operation to disable the control when created and the datasource is inactive. The initial date/time when created is now zero, instead of the current date/time. Changed control repainting to make it update always when a DateFormatString or DateFormatZero property changes.


Fixed a bug causing a designtime access violation with nested datasets.

Dataset Adapter for Client Datasets

Implemented Commit and Rollback navigation button operations.

Release 6.0.1 Notes:

This release is built for the production release of Delphi 6 (Build 6.163).

  • The Companion CD Lite version has been updated. (Fixes 'Bad packaged unit format' compiler error).

  • Help files have been updated.

  • Interbase demo databases have been updated to version 6.

  • See below for new features in version 6.0.

New Components in Release 6.0.0:



Sprite Animation

On the ABC Multimedia component tab. A new framework of components for multimedia sprite animation has been added. This allows 2D animation of sprite images, with Z-Ordered painting.

The sprite engine is multithreading and optimised for high performance with minimal screen repainting. 

Sprites are lightweight TComponent descendants. Sprites are owned by the form or datamodule they are created on, but are not visible and do not appear on the component palette. You can create sprites at designtime using the abcSpriteList component editor. (This arrangement is somewhat like the TAction and TActionList components in Delphi).


This is a graphical control with a canvas that sprites are drawn on. A list of sprites is connected to the surface using its Sprites property.


This is a container for a list of Sprite components. At designtime, add new sprites by clicking the component editor.


This is a sprite for drawing a masked bitmap.


This is a sprite for drawing a masked image from a TImageList.


This is a sprite for drawing an image from another graphic file, such as a JPEG or ICO file.


This is a sprite for drawing images and text with transition effects.


This is an effect sprite with additional drawing of rich text captions.


This is an invisible sprite for collision and mouse event detection only.


This is a sprite for drawing text with optional scrolling.


This is a sprite for drawing shapes.


This draws text that can be rotated to any angle.


This component allows runtime replication of multiple bitmap sprites using a single image, for reduced memory and performance.


On the ABC Containers component tab. This is a tab control that contains another form on each page. It allows automatic or manual creation and destruction of form instances. It can show transition effects when changing the tab. It can also act as a dock site for dragging and dropping forms onto pages. This control is a replacement for the abcFormTabbedNotebook and should be used in preference.


On the ABC Labels component tab. This is a hyperlinked label that executes a mailto: command into the default email application. Address, Subject and Body text are passed to the email.


On the ABC Dialogs component tab. This dialog component can replace the style of dialog shown in Delphi's MessageDlg function. It includes formatting options for all aspects of the dialog appearance and can also add a checkbox.


On the ABC Dialogs component tab. This dialog component descends from TabcMessageDlg. It adds an optional progress bar and has an interval timer. It allows counting down or up to a specified number of intervals and allows the label text on the message to change as the time interval progresses.


On the ABC Utils component tab. This is a singleton component that allows your application to monitor activity and to shut down automatically when a period of inactivity is detected. Activity is monitored through user mouse and keyboard actions, and on Windows NT platforms can also measure process times (Kernel and User mode execution time). It includes confirmation steps with a dialog and event before shutting down and a choice of the method used to terminate the application.


On the ABC Data Access component tab. This is a registration component for the new dbExpress dataset adapter classes in ABC. For use with the Delphi 6 dbExpress components.

Enhanced Components in Release 6.0.0:




Added a property AutoShowOnDestroy to automatically show the splash screen when closing the application, i.e. before the component is destroyed.

Added window animation effects to blend, roll or slide the splash form when showing or when hiding. These are in the AnimateShow and AnimateHide properties. Note, when using a shaped form, the only possible animation is the blend effect.

Bugs Fixed in Release 6.0.0:



ABC Splitter Controls

Fixed a bug causing scaling of the split position to not work in some cases when loading the application.

ABC Menus

Fixed a bug causing MDI Window Menu items on the main menu to not update properly.


Fixed a bug causing a problem loading a form into the control at runtime, when it is not on the active page.

TabcABC Menus

Fixed a bug causing MDI Window Menu items on the main menu to not update properly.


Fixed a bug that caused an exception when the SelectedIndex property is changed before the control is visible on the screen, e.g. when set in the FormCreate event.

New Delphi 6 IDE Features:



ABC Component Browser

In the Delphi IDE: Help | Browse ABC Components

Added a hyperlinked label for This will format an email message to support with the current version and platform information in the body of the mail message.

Added a hyperlinked label "Current release" which does an http read of the latest release number from our web site. This is handy to check if you have the current version of ABC installed.

Issues Converting From ABC Version 5:



Components Removed

The following legacy Delphi 1/2 components are also no longer used and have been deleted: 

  • TabcWin3D

  • TabcRSExit

  • TabcWinMsgBox. Use TabcMessageDlg instead.

  • TabcWinAbout. This will be replaced in future with a different about box dialog component.

Case Sensitive Unit Names

At the time of writing, the Delphi 6 compiler includes a warning about .pas file name and Unit or Uses statement references to the unit, that is case sensitive. The message is "Unit Identifier does not match file name". This warning might have been removed from the Delphi 6 release, if you don't see it then there is no problem.

If you get this warning with any ABC units, there is a GReplace file containing all of the abc unit names, which can be used to edit your source code.

ABC unit files have been renamed to be all lower case.

Package Name References

Borland has added a feature to remove the version number suffix from package name references (i.e. the dcp files) while retaining the version suffix on the actual .bpl file when it is compiled.

So references to any ABC runtime packages in code, now longer require a '60' or '50' suffix. Apart from that the runtime package names have not changed.