Search code examples
delphicustom-componentdelphi-6

Installing component in dclusr.dpk breakes other components


First I've installed RX library 2.75 and some others.
Then I'm trying to install custom (not mine) component TMyLookupEdit which is derived from TRxLookupEdit.
I do it thru main menu -> Component -> Install Component... and choose components' .pas file

And when Delphi tries to rebuild dclusr.dpk I get something like this (don't remember, to reproduce it I've found no other way but to reinstall Delphi):

Can't load package c:\program files\borland\delphi6\Projects\Bpl\dclrx6.bpl.
Cannot load package 'RxCtl6.'  It contains unit 'FileUtil,'which is also contained in package 'RxCtl660'

Then IDE tells me that MyLookupEdit component is installed and about 100 other components are uninstalled. All RX components are gone from palette

I'm sure I've installed only RxCtl6 and not RxCtl660. But they are both in C:\Program Files\Borland\Delphi6\Projects\Bpl now. The only clue I have is that #define in dclusr.dpk file (see below)

How can I make RX and this component work together ?


Here is my dclusr.dpk (most #defines are omitted):

{$LIBSUFFIX '60'}

requires
  rtl,
  vcl,
  designide,
  vcldb,
  dbrtl,
  vclx,
  VclSmp,
  RxCtl6,
  RxDB6;

contains
  RegGrid in '..\..\..\..\_work\Delphi\__Install\__Components\No-package components\RegGrid\RegGrid.pas',
  Tabenter in '..\..\..\..\_work\Delphi\__Install\__Components\No-package components\TABENTER.PAS',
  MyLE in '..\..\..\..\_work\Delphi\__Install\__Components\No-package components\MyLookupEdit\MyLE.pas';

end.

Solution

  1. Remove {$LIBSUFFIX '60'} from dclusr.dpk
  2. Delete dclusr60.bpl file
  3. Rebuild dclusr.dpk

Many thanks to Serg for directions!


Solution

  • I'm sure I've installed only RxCtl6 and not RxCtl660. But they are both in C:\Program Files\Borland\Delphi6\Projects\Bpl

    The coexistence of RxCtl6.bpl and RxCtl660.bpl means that your RxCtl6 package was somehow compiled with and without {$LIBSUFFIX '60'} directive.

    I had the similar problem after installing an updated TeeChart component package, with the result that TeeChart - dependent packages became unworkable. As a quick solution you can try to replace RxCtl6 and RxDB6 by RxCtl660 and RxDB660 in the "required" section. Also check your RX *.dpk sources for {$LIBSUFFIX '60'} directive - an actual the problem is connected to {$LIBSUFFIX '60'} directive.

    Don't reinstall Delphi if some packages disappear - Delphi keeps the information about the installed packages in registry, so

    • try to fix the problem in IDE; if it does not help
    • try to fix the problem in registry