Le 2005-02-19 07:06, Agnès Simonet a écrit :
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.
Oui, quelques manipulations m'ont confirmé que ces "structures" sont
très limitées en comparaison avec les structures des autres langages.
Mais pour ton problème, tu peux éviter les tableaux de tableaux. Je
pense qu'il est plus simple de créer un tableau par sous-donnée à
mémoriser, exemple :
Option Explicit
Public Const maxFormes = 50
Public laForme(maxFormes) As Object
Public sensRotationHoraire(maxFormes) As Boolean
Public PointInflexion1(maxFormes) As new com.sun.star.awt.Point
Sub Main
dim inflex As new com.sun.star.awt.Point
' pour la forme de rang 17
sensRotationHoraire(17) = true
inflex.X = 2503
inflex.Y = 3456
PointInflexion1(17) = inflex
' pour la forme de rang 22
sensRotationHoraire(22) = false
inflex.X = 1234
inflex.Y = 4321
PointInflexion1(22) = inflex
' vérifier le remplissage
xray.xray PointInflexion1(17)
xray.xray PointInflexion1(22)
xray.xray PointInflexion1(16)
End Sub
Tu peux bien sûr définir des sous-programmes pour simplifier des
manipulations répétitives : il suffit de transmettre le rang de la forme.
Bonne journée
Bernard