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
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.
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+
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é ?
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...
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.