J'ai travaillé sur un programme dans Delphi 2009. Il est très similaire au programme "Mimics" par matérialiser, où vous pouvez créer et manipuler des maillages 3D. Il y a 4 panneaux avec des aspects différents pour visualiser un objet 3D (XY, YZ, XZ et perspective 3D). Chacun des panneaux est une instance d'un cadre personnalisé que j'ai créé pour visualiser des objets 3D. Les 4 panneaux sont ensuite chargés sur une forme qui a des boutons et d'autres composants.Communication entre les formes et les cadres
Un problème que je rencontre est que les cadres doivent accéder aux sous-routines du formulaire sur lequel ils résident. PAR EXEMPLE. Si je change quelque chose sur le maillage im dans l'un des cadres, TOUTES les images doivent être mises à jour (actualisées), ce qui est une procédure disponible dans le formulaire parent. Mais pour appeler des procédures sur le formulaire parent, je dois inclure le fichier d'unité du formulaire parent dans la clause uses d'implémentation du cadre 3D. C'est bien, et cela fonctionne en général sans aucun problème. Le problème est que je ne peux pas utiliser le formulaire parent pour en hériter. Si je crée une classe héritée à partir du formulaire parent, le nom de l'unité et le nom du formulaire changent et je dois alors modifier le cadre 3D pour faire référence à ce nouveau formulaire modifié.
C'est vraiment le noeud de mon problème. Je ne sais pas comment référencer les attributs d'un formulaire parent à partir de ses cadres enfants sans indiquer explicitement le nom du formulaire. Je veux être en mesure de réutiliser et de développer sur le formulaire parent, mais je ne vois pas comment c'est possible sans changer aussi les cadres 3D qui sont utilisés par le formulaire.
Toute aide serait grandement appréciée. Je vous remercie.
Merci beaucoup pour la réponse. Je comprends maintenant que les gestionnaires d'événements me permettent d'appeler les sous-routines du formulaire parent à partir de la trame de ce formulaire, et c'est une solution à mon problème comme je l'ai dit. Je voudrais savoir s'il est également possible de modifier les champs de données du formulaire parent à partir des cadres filles. PAR EXEMPLE. si je fais une tranche du maillage dans l'un des cadres, je voudrais mettre à jour les limites visibles du maillage, qui est une propriété du formulaire parent. – Nicholas
Il n'y a pas de limite au nombre d'événements que vous pouvez avoir. Vous pouvez demander à votre cadre de déclencher un événement, puis de relire le formulaire parent à partir du cadre, de mettre à jour les propriétés en conséquence, puis de propager éventuellement ces modifications de propriété aux autres cadres si nécessaire. – Jenakai