Installing Delphi components on BCB6

Today I’ve been installing CoolTrayIcon components on BCB6.
I’ve done it once, but totally forgot how I managed to do it.
The install.txt sais:

1. Select “New Component…” from the menu
2. In “Ancestor type”, select “TTrayIcon  [trayicon]”
3. In “Class Name”, type “TCoolTrayIcon”
4. In “Palette Page”, type “Tray Icons” (or another tab you want to install to)
5. In “Unit file name”, select “RegisterTrayIcons.pas” (which is found in the
   CoolTrayIcon package). Also, include CoolTrayIcon.pas and TextTrayIcon.pas,
   or you might get an error regarding “IMGLIST.OBJ”.
6. Click on the “Install” button.

If you do exatly that you’ll finish with a bunch of linker errors. Particular one is

Outline::TCustomOutline::~TCustomOutline()’ referenced from C:PROGRAM
FILESBORLANDCBUILDER6LIBBCBSMP.LIB|.cdiroutl.cpp

Not very straightforward googling results in the following solution:

 this is quite common when installing Delphi components into BCB. You
need to add bcbsmp.bpi into the ‘Requires’ part of the package. (It’s
in the small ‘Package’ window under ‘Requires’)
I figured out a way to eliminate the above error message.

add…
..CBUilder6LibDebugvclx.bpi
The Pascal component probably ‘uses’ a VCL sample component. This is a
tricky area for Pascal component usage in BCB as BCB comes with native
C++ sample VCL components and by-design excludes the native Pascal VCL
sample components.

Once I’ve done it everything went fine in my work environment.
But today I went into another linker error when trying to repeat installation in my home environment:

[Linker Fatal Error] Fatal: Unable to open file ‘c:PROGRA~2BORLAN~1ProjectsLibcooltrayicon.bpi’

Again googling resulted in

Yes, BCB wanted to create files in the folders ProjectsLib and
ProjectsBpl which didn’t exist

At last creating Lib directory under Projects resulted in successfull install.
Damn! So wast amount of time was spent just to install one component!

Leave a Reply

Your email address will not be published. Required fields are marked *