8 messages in org.openoffice.fr.progRe: [prog] création dynamique de nom ...
FromSent OnAttachments
Agnès SimonetFeb 17, 2005 6:37 am 
Laurent GodardFeb 17, 2005 8:08 am 
Agnès SimonetFeb 17, 2005 10:43 pm 
Laurent GodardFeb 17, 2005 10:54 pm 
Bernard MarcellyFeb 18, 2005 5:00 am 
Agnès SimonetFeb 18, 2005 10:06 pm 
Bernard MarcellyFeb 19, 2005 3:33 am 
Agnès SimonetFeb 19, 2005 9:40 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] création dynamique de nom de variables ?Actions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Feb 19, 2005 3:33:31 am
List:org.openoffice.fr.prog

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