IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI Delphi Discussion :

[Delphi 7] .dcu sans .pas


Sujet :

EDI Delphi

  1. #1
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut [Delphi 7] .dcu sans .pas
    J'ai remarqué que ce sujet a déjà été abordé, mais je n'ai pas trouvé de solution à mon problème.

    Je travaille sur un projet Delphi dont le seul développeur a quitté. Je dois débogguer une application Delphi utilisant un composant d'un tierce parti. J'ai seulement le DCU de ce composant et je ne réussis à à l'installer.

    D'après le DOF du projet, la dernière fois qu'il a été compilé, ce fut avec Delphi 7. Je suppose donc que le project est compatible avec le DCU et que les 2 ont été compilés avec Delphi 7.

    Est-ce que quelqu'un pourrait me donner une procédure pour installer un composant contenu dans un DCU?

    Merci infiniment
    Francis = Thor22 = Tholmir

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Copie le dans Borland/Delphi/Lib
    Inclue l'unitee dans le Uses et hop ca marche (en creation dynamique unitquement).

    Sinon tu peux aussi passer par Composant/Instaler un composant, tu dois pouvoir choisir soit un PAs soit un DCU pour l'installer dans la toolbar.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    J'ai déjà essayé de copier le dcu dans C:\Program Files\Borland\Delphi7\Lib, mais sans succès.

    Quand j'ai essayé de l'inclure par Component / Install Component, lors de la compilation du Package, j'ai reçu l'erreur suivante:
    [Fatal Error] dclusr.dpk(37): Read error on 'chemin d'accès au fichier dcu'

    Vous avez une idée de la cause de ce problème?

    Merci
    Francis = Thor22 = Tholmir

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    A part prononstiquer une corruption du fichier DCU non.

    Normalement le simple fait de copier les DCU dans Lib d'inclure le nom dans Uses tu peux acceder a son contenu (<NomUnite> suivi de Point dans le code pour afficher son contenu ;p)
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  5. #5
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Quelqu'un m'a référé à la page suivante:
    http://www.csd.net/~cgadd/d4_install.htm

    Ça m'a redonné espoir, mais ça ne semble pas fonctionner... Peut-être parce que cette procedure est pour Delphi 4.

    Pour moi, pour chaque package, le bouton "Edit" n'était pas actif.
    Je peux faire un "Add", mais il faudrait que je place le DCU dans un package. Je n'ai pas réussi à faire cette étape.

    Ça donne vous donne des idées?

    Merci de votre aide
    Francis = Thor22 = Tholmir

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    LA methode officielle est :

    COmposant -> Installer un composant.

    Dans un paquet :
    - Nom Unite : Parcourir -> Selectionner le Pas ou Dcu
    - Chemin de recherche : Rien modifier
    - Dans le paquet : selectionner dclust.dpk (plus courrant) ou bien tout autre dpk existant.

    Dans un nouveau paquet :
    MEme etapes sauf que le paquet sera cree + Ajouter une chaine descriptif du paquet.

    Ensuite Toujours valider. Sur la fenetre de gestion du paquet, compiler et installer, valider, enregistrer les modifs.

    Si ca marche toujorus pas :
    Verifier que le fichier <nom paquet>.bpl soit bien dans Delphi\Bin et les DCU dans Lib.

    Apres ca ... tout devrais marcher .... sinon c'est le Dcu qui est foireux ou qu'il fait reference a d'autre dcu non present ou mal installés (ie compilation du paquet impossible de meme que tout programes appelant cet unitee).

    Dans la plupart des cas, une simple copie du/des dcu dans lib et verification que Delphi\lib fait bien partir du chemin de recherche des bibliotheques (options->Option d'environnement->bibliotheques) suffit a y acceder.
    La declaration de l'unitee dans Uses permet d'acceder a l'unitee.

    si ca marche toujours pas ... envoie moi le DCU je regarderais mardi (je part 3j ;p)
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    J'ai essayé ta méthode, en l'installant dans un paquet existant.
    Lorsque j'ai cliqué sur "OK" dans la fenêtre d'installation du composant, j'ai eu le message suivant: "One or more lines were too long and have been truncated."
    J'ai fait "OK".
    Ensuite: "Package dclusr.bpl will be rebuilt. Continue?", j'ai fait "Yes"
    J'ai ensuite eu l'erreur: [Fatal Error] dclusr.dpk(37): Read error on 'Advlistv.dcu'

    C'est là que je suis maintenant...

    Des suggestion?
    Merci

    PS: Clorish, je vais t'envoyer le DCU fautif.
    Francis = Thor22 = Tholmir

  8. #8
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Le problème est enfin réglé!
    Un très grand merci à Clorish, qui m'a beaucoup aidé dans la résolution de ce problème.

    Clorish, tu es le meilleur!

    Voici la solution:
    Premièrement, nous avons trouvé que mon composant (AdvListV) utilisait un autre composant (PictureContainer).
    Pour trouver ceci, nous avons créé un projet vide. Nous avons placé dans le Uses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,AdvListV;
    En faisant ceci, pour voir le contenu de AdvListV:
    un erreur s'est produite: l'absence du PictureContainer.
    La première partie du problème était donc résolue.

    Cependant, le problème n'était pas complètement résolu, la classe était toujours manquante.
    Pourtant, en faisant:
    la classe TAdvListView était bien là!

    Clorish m'a proposé:
    Principe :
    Si tu cree dynamiquement un objet, il sera "active" et "instancier" lors de la compilation. Il va chercher a ce moment la classe qui la defini pour structurer l'executable convenablement.

    L'aspect si particulier de Delphi en mode conception, qui permet de "voir" son appli avant meme la compilation est du au fait que Delphi cree une instance pour chaque objets comme windows le ferait a l'execution.
    Donc, si tu place un composant sur ta fiche, delphi cree une instance de cette variable (en mode conception) et l'utilise.

    A l'ouverture de ta form, Delphi va chercher le composant TadvListView qu'il ne trouve pas (classe non referencee donc non connue)

    Pour cela le mieux est donc de creer un package pour installer ton compo dans la toolbar et ainsi le referencer.
    C'est ce que j'ai fais, en suivant ses instructions:
    Creer un nouveau paquet (ficheir->Nouveau>paquet :ppp)
    Ajoute les ficheirs DCU qui correspondent au "theme" (apriori tous ceux que tu as copie dans Lib)
    Creer un fichier pas tout bete avec dans la partie Private la procedure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Procedure Register; 
    Begin 
    RegisterComponent&#40;'MEsCompos', &#91;TAdvListView, ...&#93;&#41;; 
    End;
    Avec bien entendu les unitees dans la clause uses.

    Insere le dans le paquet et compile (dans option tu peux rediriger le fichier compile vers Delphi\Bin ... d'extention bpl)
    ensuite un simple Composant->Installer un paquet->ajouter->Nom du ficheir Bpl compilé devrais suffire.

    Tes objets apparaitrons dans la toolbar dans la section 'MEsCompos'.
    J'ai cependant dû modifié son code pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegisterComponents&#40;'MesCompos, &#91;AdvListV.TAdvListView&#93;&#41;;
    Et ça a marché!!

    J'espère que ceci va en aider d'autres.

    Encore une fois, merci Clorish
    Francis = Thor22 = Tholmir

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Je rappelle un point imortant :

    Pour qu'une unite soit accessible dans la clause uses sans faire 'Projet->Ajouter une unite' (car on ne possede pas le .pas) il faut copier le(s) fichier ".dcu" dans 'C:\Program Files\Borland\Delphi\Lib' ou tout autre rep de votre choix a condition que son chemin soit rajouté dans "Options->Option d'environnement->Bibliotheques'.

    Clorish, tu es le meilleur!
    Faut pas abuser non plus ;pp tu tombe juste au moment ou je commence a creer mes propres libs et a les installer manuelement (ou via un batch, on verra plus tard pour un exe delphi ) dans Delphi ....
    Ya 15j tu serait encore en traint de chercher ;pp
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Delphi 7] SOAP sans WSDL
    Par serge0934 dans le forum Web & réseau
    Réponses: 0
    Dernier message: 07/02/2008, 19h19
  2. Delphi 7 ne reconnait pas la valeur Null
    Par crackosd dans le forum Langage
    Réponses: 4
    Dernier message: 17/01/2008, 13h33
  3. Delphi et MS Office : pas de menu dans word
    Par PaulR dans le forum Delphi
    Réponses: 2
    Dernier message: 05/06/2007, 16h21
  4. Convertir DCU en PAS ??
    Par Cornos dans le forum EDI
    Réponses: 1
    Dernier message: 22/11/2005, 21h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo