2010-12-01 39 views
3

J'ai d'abord installé RX library 2.75 et quelques autres.
Ensuite, je suis en train d'installer le composant personnalisé (pas le mien) TMyLookupEdit qui est dérivé de TRxLookupEdit.
je le fais à travers menu principal -> Component -> Installer des composants ... et choisissez .pas fichier de composantsL'installation du composant dans dclusr.dpk casse les autres composants

Et quand Delphi tente de reconstruire dclusr.dpk je reçois quelque chose comme ce (ne me souviens pas, de le reproduire, je l'ai pas trouvé d'autre moyen que de réinstaller 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' 

Ensuite IDE me dit que le composant MyLookupEdit est installé et environ 100 autres composants sont un installé. Tous les composants RX sont partis de la palette

Je suis sûr que j'ai installé uniquement RxCtl6 et non RxCtl6 . Mais ils sont à la fois dans C: \ Program Files \ Borland \ Delphi6 \ Projects \ Bpl maintenant. Le seul indice que j'ai est que # définir dans le fichier dclusr.dpk (voir ci-dessous)

Comment puis-je faire RX et ce composant fonctionnent-ils ensemble?


Voici mon dclusr.dpk (la plupart #defines sont omis):

{$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. Supprimer {$ LIBSUFFIX '60'} de DCLUSR .dpk
  2. Supprimer le fichier dclusr60.bpl
  3. Reconstruire dclusr.dpk

Un grand merci à Serg pour les directions!

+0

b.t.w ce composant 'MyLookupEdit' semble assez inutile, de sorte que la solution pourrait être juste pour réécrire les projets pour ne pas l'utiliser. Mais il a été présenté à nos projets il y a environ 7-8 ans et je ne les conserve que pendant 6 mois, donc je ne suis pas sûr de l'impact que cela aura. –

+0

Peut-être devrais-je inclure ce composant dans le paquet RX, RxLookup? –

Répondre

1

Je suis sûr que je ne l'ai installé RxCtl6 et non RxCtl660. Mais ils sont tous deux dans C: \ Program Files \ Borland \ Delphi6 \ Projects \ Bpl

La coexistence de RxCtl6.bpl et RxCtl660.bpl signifie que votre paquet RxCtl6 était en quelque sorte compilé avec et sans {LIBSUFFIX $ '60'} directive.

J'ai eu le même problème après l'installation d'un package de composants TeeChart mis à jour, avec pour résultat que les packages dépendants de TeeChart sont devenus inutilisables. Comme une solution rapide, vous pouvez essayer de remplacer RxCtl6 et RxDB6 par RxCtl660 et RxDB660 dans la section «requis». Vérifiez également vos sources RX * .dpk pour la directive {$ LIBSUFFIX '60'} - un problème réel est lié à la directive {$ LIBSUFFIX '60'}.

Ne pas réinstaller Delphi si certains paquets disparaissent - Delphi conserve les informations sur les paquets installés dans le registre, afin

  • essayer de résoudre le problème dans IDE; si elle ne permet pas
  • essayer de résoudre le problème dans le registre
+0

Merci pour votre réponse. C'est un tel soulagement d'ici que quelqu'un d'autre l'a rencontré! Le remplacement de 6 par 660 fichiers ne fonctionne pas. Il est dit "paquet requis" RxCtl660 "non trouvé". Demain je vais essayer de se débarrasser de 660 fichiers et entrées de registre, désactiver {$ LIBSUFFIX} dans dclusr.dpk et réinstaller ce petit composant. Je rapporterai mes progrès ici –