fdouieb
Messages postés264Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention12 juin 2013
-
6 oct. 2005 à 10:59
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
8 oct. 2005 à 20:51
Bonjour
Est- il possible de forcer la compilation a accepter le code sachant que
lorsqu'il s'exécutera il sera bon. Je m'explique via un exemple
je possède 3 fenêtres wTest1 et wTest2 avec chacune le membre
"iwTips" et une fenêtre wTips
le constructor de la fenetre wTips est comme suit:
public wTips(System.Windows.Forms.Form
awParent)
{
iwParent = awParent;
awParent.iwTips =
this; <==== c'est cette ligne que je voudrais forcer a la
compilation
InitializeComponent();
}
sachant que la fenêtre wTips ne sera exécuté que par wTest1 ou wTest2
Remarque: dans ce cas présent il serait possible de faire ((wTest1)
awParent).iwTips ou idem avec wTest2 mais ce n'est pas ce que je recherche. C'est
réellement de forcer la compilation.
fdouieb
Messages postés264Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention12 juin 20133 6 oct. 2005 à 11:16
Je comprend tas reponse qui est logique a premiere vue. Mais est ce que
tu comprend que lors de l'execution l'appli ne va pas planter car
wTest1 et wTest2 possede la propriete iwTips.
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 6 oct. 2005 à 11:23
oui... mais je crois que tu n'as pas bien compris les principes de la POO...
l'objet que tu manipules là n'est pas un wTest1 ou un wTest2... mais un Form... et donc Form n'a pas de propriété iwTips.
donc, la solution c'est ca :
public wTips(System.Windows.Forms.Form awParent)
{
iwParent = awParent;
if (awParent is wTest1) {
((wTest1)awParent).iwTips = this;
}
if (awParent is wTest2) {
((wTest2)awParent).iwTips = this;
}
InitializeComponent();
}
Mais le plus propre sera d'avoir une interface commune avec toutes les propriétés, méthodes et autres évènements que tu veux utiliser... et ensuite tu les impléments dans tes formulaires.
fdouieb
Messages postés264Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention12 juin 20133 8 oct. 2005 à 20:11
Coq tu as tres bien compris le principe de ce que je cherche mais le problem c'est que tas methode ne fonctionne pas. En effet, dans ton exemple prop reste toujours null meme lorsque awParent provient de wTest1???
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 8 oct. 2005 à 20:16
La propriété (ou parle bien d'une propriété ?) iwTips est définie dans les classes wTest1 et wTest2 ou dans une classe dont elles héritent ?
Quel est leur niveau d'accessibilité ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 8 oct. 2005 à 20:51
Donc quand tu passes une instance de wTest1 ça devrait réussir à localiser la propriété iwTips.
Je ne vois pas pourquoi ça ne passe pas.
Mais regarde plutot du coté de la définition d'une interface, ça correspond très bien a ce que tu veux faire, et ça sera plus simple et plus performant.