POO windev
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Bjr j'ai un probleme sous Windev 8...
Je dois creer une classe mere, soit "Forme" et cette classe est parente de diférentes classes Dont Polygone, Ligne, Cercle...
Mon but est de créer un tableau dynamique de Formes, et de pouvoir y mettre des Polygones, des lignes ou des cercles... En Java et en C++ cela est possible. Peut t-on y arriver en Windev ???
Jusque la, j'ai déclaré mes classes, Forme, et Polygone qui hérite de Forme, pareil pour Ligne et cercle... mais j'ai aucune idées pour mon tableau de Formes... Un tit coup de mains serait le bienvenu... Merci d'avance !

Contribution le : 07/06/2004 12:08
Créer un fichier PDF de la contribution Imprimer


Re: POO windev
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour Deedier.
[modérateur]Inutile de démultiplier vos posts dans tous les forums même si le sujet est générique, cela n'augmente pas les chances de réponses...[/modérateur]

Vous devez en premier lieu analyser avec précision la hiérarchie de vos composants (forme, ligne, cercles etc) affin d'aviter les bouclages d'héritage qui poseront sans doute des problèmes.

Je vous propose un objet dessin qui sera un conteneur et dont la fonction sera précisément de gérer les composant du dessin (instances des objets formes et cie).
Pour cela, je vous invite à étudier en détail les chapitres suivants de WinDev :
- Les objets dynamiques (allocation, libération etc)
- les tableaux dynamiques
ces deux éléments seron le noyau technique de votre classe :
cDessin est une classe
  nDess est un entier = 0 // nombre d'objets
  tDess est un tableau de nDess objets dynamiques // tableau des objets
   ...
   PUBLIC CONSTANT
      _FORME est un entier = 0
      _POLYGONE est un entier = 1
      _CERCLE est un entier = 2
      ...
   FIN
FIN

// nouvel objet dans le dessin
PROCEDURE Ajoute(pnType=::_FORME)
oo est un objet dynamique
// ajoute une ligne au tableau
nDess=Dimension(tDess,nDess+1)
// affecte le nouvel objet
SELON pntype
   CAS ::_FORME:
      tdess[ndess] = allouer une forme(<params>)
   CAS ::_POLYGONE:
      tdess[ndess] = allouer un polygone(<params>)
      ...
FIN
RENVOYER ndess

// nouvel objet dans le dessin
PROCEDURE Ajoute(pnType=::_FORME)
oo est un objet dynamique
// ajoute une ligne au tableau
nDess=Dimension(tDess,nDess+1)
// affecte le nouvel objet
SELON pntype
   CAS ::_FORME:
      tdess[ndess] = allouer une forme(<params>)
   CAS ::_POLYGONE:
      tdess[ndess] = allouer un polygone(<params>)
      ...
FIN
RENVOYER ndess

// libération des ressources
PROCEDURE Destructeur
i est un entier
POUR i=1 à nDess
 liberer tdess[i]
FIN
Libérer tdess


Utilisation
oDess est un cDessin
nForme=oDess:Ajoute(cDessin::_FORME)
nPolygone=oDess:Ajoute(cDessin::_POLYGONE)
// manipule la forme
oDess:tdess[nforme]:méthode_de_forme(<param>)
// manipule le polygone
oDess:tdess[npolygone]:méthode_de_polygone(<param>)


Note : cDessin peut accessoirement servir à gérer les options de recouvrement en donnant une 'altitude' aux objets et donc un ordre d'affichage : le plus élevé étant affiché en dernier. Je vous laisse imaginer les extension techniques possible.

Merci éventuellement de nous retourner fruit de vos travaux...

Contribution le : 07/06/2004 12:43
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: POO windev
Stagiaire WDF
Inscrit:
03/06/2004 11:26
Post(s): 7
Je viens d'envoyer à R&B un exemple de programme illustrant l'utilisation de l'héritage et des tableaux dynamiques, pour qu'il le mette en ligne (s'il le veut bien).
Il s'agit de mettre des affaires de toilette dans une trousse de toilette. On peut ensuite les utiliser mais la serviette de toilette est mouillée si on l'a déjà utilisée (mais on peut la faire sécher) et le tube de dentifrice se vide petit à petit !

Contribution le : 08/06/2004 09:03
Créer un fichier PDF de la contribution Imprimer


Re: POO windev
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Merci Nicole.
Arrivé : télécharger.

Manque juste la documentation complete de la classe précisant justement l'objet de l'exemple... cf ce qui a été fait pour vba externe qui est notre standard projet : classe+exemple+documentation détaillée+explicaton.

Nicole, J'attend donc version aboutie, histoire de parfaire complètement cet exemple ludique !

Contribution le : 08/06/2004 09:19
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: POO windev
Anonyme
Ok, je vais regarder ça. C'est vrai que j'ai été un peu vite à cliquer sur le bouton Envoi, emportée par mon élan et mon envie de répondre tout de suite à la question initiale !

Contribution le : 08/06/2004 14:41
Créer un fichier PDF de la contribution Imprimer


Re: POO windev
Stagiaire WDF
Inscrit:
03/06/2004 11:26
Post(s): 7
Et décidément c'est ma journée, j'ai oublié de m'identifier au dessus ...

Contribution le : 08/06/2004 14:43
Créer un fichier PDF de la contribution Imprimer


Re: POO windev
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Un grand Merci à tout le monde !! J'ai réussi ce que je voulais faire !!

PS: Quelle rapidité dans les réponses bravo !

Contribution le : 08/06/2004 16:54
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2