Bonjour Bernard et Laurent,

Bernard Marcelly a écrit :


Je sais que je pourrais stocker les formes dans un tableau d'objets MesFormes() à x éléments, que je redimensionnerai avec préservation, le moment voulu. Je pourrai alors récupérer la forme n°x par MesFormes(x) mais ça ne fait que déplacer le problème. J'ai besoin d'une variable objet par forme créée. Je ne les veux pas dans un tableau.

J'ai la même position que Laurent. Je ne vois pas de situation où il serait nécessaire de nommer chaque variable. Pourrais-tu nous expliquer pourquoi ?


   Bernard


Je crois que j'ai la réponse à ma question.
Je suis dans le cas typique où il faut une indexation et donc l'utilisation d'un tableau s'impose.
Je m'en doutais un peu sinon j'aurais déjà rencontré une solution à mon problème dans les nombreuses macros que je décortique.


Pour satisfaire votre curiosité, voilà ce que je veux faire (ce que je vous ai décrit n'était qu'une version simplifiée) :
J'ai un tableau de tableaux de données qui me permettent de dessiner des formes. Je dois stocker non seulement les formes mais également diverses données caractéristiques de ces formes. Un tableau de tableaux est évidemment la solution.


Mais voilà, après avoir passé 3 heures à écrire une routine d'ajout d'un sous-élément dans un tableau de tableaux, ceux-ci me sortent un peu par les trous de nez.
Je leur reproche (mais ils s'en foutent ;-) ):
* de ne pas permettre l'accès direct à un sous-élément.
Pour obtenir le 1er point particulier de la 2ème forme, je suis obligée de procéder en 2 étapes :
ToutSurLaForme = Tableau(1)
Point1DeForme = ToutSurLaForme2(3) si le point1 est à l'index 3
* ToutSurLaForme2(3) ne m'indique pas de manière explicite qu'il s'agit du 1er point de la forme 2. Ça ne facilite pas la relecture et la traque des erreurs.
* Le transfert de données d'un tableau de tableaux à un autre (copie par valeurs) n'est pas des plus simples puisqu'il faut le faire sous-élément par sous-élément.


Inutile de dire que je n'ai même pas été voir du côté des tableaux à plusieurs dimensions.

Alors je suis allée explorer la possibilité, qu'a signalée Andrew Pitonyak, de créer des types de variables personnelles :
Type FormeType As Type
LaForme As Object
sensderotation As Boolean
PointInflexion1 As com.sun.star.awt.Point
etc
End Type


Dim ToutSurLaForme2 As FormeType

C'est un vrai plaisir à manipuler :
Point1DeForme2 = ToutSurLaForme2.PointInflexion3

Bref, ça n'a pas les inconvénients des tableaux.
Mais, il y a toujours un mais, ça n'en a pas les avantages non plus : pas d'indexation.
Il me fallait donc déclarer un ToutSurLaFormex par Forme créée.
D'où ma question.


Voilà, j'ai tout avoué :-)

Exit donc les FormesType et en avant pour des tableaux de tableaux ou les tableaux à plusieurs dimensions. Mais je sens venir un problème car ce tableau est Public donc pas de Redim possible si j'ai bien compris. Vous risquez de me revoir bientôt sur la liste ;-)

Merci de votre aide précieuse, qui m'a en plus donnée le courage d' affronter à nouveau ces presque-plus-maudits tableaux .

Agnès S.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Répondre à