3

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!

Alexander Malakhov
  • 3,383
  • 2
  • 33
  • 58
  • b.t.w this `MyLookupEdit` component looks pretty useless, so the solution could be just to rewrite projects to not use it. But it was introduced to our projects about 7-8 years ago and I'm maintaining them only for 6 months, so I'm not sure what impact will be – Alexander Malakhov Dec 01 '10 at 09:02
  • Maybe I should include this component in RX package, RxLookup unit ? – Alexander Malakhov Dec 01 '10 at 09:36

1 Answers1

1

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
kludg
  • 27,213
  • 5
  • 67
  • 118
  • Thanks for reply. It's such a relief to here someone else encountered it! Replacing 6 with 660 files doesn't work. It says "Required package 'RxCtl660' not found". Tomorrow I will try to get rid of 660 files and registry entries, disable {$LIBSUFFIX} in dclusr.dpk and reinstall this small component. I will report my progress here – Alexander Malakhov Dec 01 '10 at 10:43