[WD7] Probleme d'heritage sur les classes

Date 4/7/2002 10:00:00 | Sujet : Trucs et astuces

Un Gros Probleme non résolu sur WinDev 7

Il existe un gros probleme sur l'héritage des classes avec WinDev 7. Si on défini une classe ancètre, et deux classes héritées et que dans ces 2 classes héritées il y ai un membre portant le même nom. Le problème est que l'instanciation des 2 classes héritées n'est pas faite et on ne peut pas accéder aux membres cités ci dessus. WinDev nous en montre 1 seul et la syntaxe moninstanceA::MaclasseC:Monmenbre n'est pas acceptée. Nous en avons parlé a PCSoft.


On peut resoudre le probleme d'une façon simple, mais assez bizarre en attendant la résolution du problème et ne pas changer le code écrit le jour ou cela se produira. je vais vous montrer ça par un exmple :

B est une classe
   BB est une chaine
   Y  est une chaine
fin

C est une classe
   BB est une chaine
   Z  est une chaine
fin

A est une classe
  un objet B
  un objet C
fin


Voila les classe B et C sont hérités de A et ont un mêmbre portant le même nom. Théoriquement je dois pouvoir faire sans problème (ou j'ai rien compris a la programmation objet) :
essai est un objet A
essai:Y = "coucou B"  // la pas de probleme
essai:Z = coucou c"   // la non plus pas de probleme
essai:BB = "Coucou les 2" // c'est la que ca commence .....

Dans BB j'ai parfois n'importe quoi ou alors, je ne peux distinguer le BB de B et le BB de C
et la syntaxe essai::B:BB n'est pas acceptée (normalement c'est comme ca que je peux les distinguer).
Voila ça c'était le bug.

Pour contourner ça j'ai trouvé une solution, assez bizarre je l'avoue et pas testée a fond pour savoir si ca plante à un moment. Et en plus windev ne dit rien.
Il suffit de faire :
A est une classe
   B est un objet B
   C est un objet C
fin
// rien que la syntaxe me faire rire

Du coup on peut faire : essai:B:BB = "coucou B" , essai:C:BB="coucou C" mais on ne peut plus faire essai:BB = "coucou" (ce qui est l'interêt principal de l'héritage avec des membres communs : affecter d'un seul coup tous les membres ayant ce nom.

Voila en attendant le résultat...

bon dev
@+

Firetox



Cet article provient de WDForge.org
http://old.wdforge.org

L'adresse de cet article est :
http://old.wdforge.org/article.php?storyid=10