Composant dans composant 2eme edition

Signaler
Messages postés
30
Date d'inscription
jeudi 15 novembre 2001
Statut
Membre
Dernière intervention
23 février 2002
-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
Je continue mon apprentissage dans la création d'un composant et la je bloque:
Je désire à partir d'un Tgraphiccontrol, ajouter à l'affichage deux Tshape qui entourent le composant.
Je déclare les 2 Tshape, je surcharge le constructeur en créant les shape (trait:=Tshape.create(AOwner) et les place par rapport au composant.
J'installe le composant, pas de probleme,
J'ouvre une nouvelle application, je place mon nouveau composant sur la feuille et lorsque je lance l'appli, Delphi m'indique l'erreur 'Class Tshape non trouvé' ! Je ne comprens pas puisque j'ai mis dans le uses du composant 'graphics'.
Quelqu'un a la réponse ?
Merci

5 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
J'ai constaté le même phénomène.
Dans Projet/Options/Chemins et répertoires, inscris l'emplacement sur ton disque de l'unité contenant ton composant ou bien :
*** Autre solution (préconisée par Borland), crées un paquet (Fichier/Nouveau/Paquet) et ajoutes l'unité de ton composant. Modifies les options de ce paquet (ici conception et éxécution), compiles et installes ce nouveau paquet.
Avant d'installer ce nouveau paquet par Composant/Installer des paquets, n'oublies pas de désinstaller ton composant installé en solitaire.
Messages postés
30
Date d'inscription
jeudi 15 novembre 2001
Statut
Membre
Dernière intervention
23 février 2002

Delphiprog, tu n'as pas compris mon probleme, je crois...
Delphi reconnait bien mon composant mais lors de l'execution, il me met ce message 'class Tshape non trouvé' et je crois savoir pourquoi:
je créé un composant à partir de la class TgraphicControl. Et je pense qu' à ce niveau de hiérarchie, Tshape est inconnue !
N'hésites pas à me dire si j'ai tort ou non !
A+
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Effectivement, nous n'étions pas sur la même longueur d'onde :sleepy) .
Cependant, la notion de paquets d'éxécution est-elle totalement étrangére au problème rencontré ?
Messages postés
30
Date d'inscription
jeudi 15 novembre 2001
Statut
Membre
Dernière intervention
23 février 2002

J'ai effectué les manip que tu m'as proposé et c'est pareil.
N'est ce pas un probleme de hierarchie ? La class Tshape fait partie de TgraphicControl. Tshape reconnait TGraphicControl vu que c'est son parent mais pas l'inverse.
Ca se trouve je dis n'importe quoi...
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
J'ai un doute : tes TShape sont inclus dans une autre contrôle. Sont-ils déclarés dans la partie published du contrôle parent ?
Pourquoi cette question : ce qui figure dans la partie published est mis dans le flux sauvegardé du composant et de la fiche propriétaire.

Or la classe TGraphicControl ne déclare aucune méthode Published. Donc aucune propriété ou méthode ne sera sauvegardée dans le flux de la fiche propriétaire du contrôle.
Ce qui explique que la calsse TShape déclarée dans le code soit introuvable dans le flux de la fiche au lancement de l'appli.

Qu'en penses-tu ?