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:Agnès Simonet (agne@laposte.net)
Date:Feb 17, 2005 10:43:54 pm
List:org.openoffice.fr.prog

Bonjour Laurent,

Laurent Godard a écrit :

Bonjour Agnes

Comment dire que si le tableau a 1 élément il me faut : dim LaForme1 As Object mais que s'il en a 3, il me faut : dim LaForme1 As Object dim LaForme2 As Object dim LaForme3 As Object ?

Je ne suis pas sûre d'être très claire.

Je pense que tu cherches à redimensionner dynamiquement un tableau C'est possible

exemple: dim TableauForme() as object n=4 redim TableauForme(0 to n) as object

Ça je sais faire, j'ai un bon bouquin ;-) Et je l'ai fait lors du remplissage du tableau de données.

Attention, lors du redim, le tableau est reinitialisé

si tu veux conserver le contenu tout en redimensionnant redim preserve Tableauforme(0 to n) as object mais attention, c'est tres tres consomatteur et ralentit beaucoup l'execution

Je l'ai constaté. Est-ce plus rentable de surdimensionner le tableau au départ, quitte à faire des tests pour déterminer le dernier élément non null ?

Ceci est decrit page 72 et suivantes du livre

On doit avoir le même bouquin :-)

J'en profite pour une petite question : que signifie "permet de redimensionner un tableau en cours d'éxecution du programme, à condition que le tableau soit *interne à une routine*."

J'espeer ne pas avoir repondu à coté de la question

Un peu quand même ce qui prouve bien que je ne suis pas claire. J'essaie de préciser ce que je veux : données dans un tableau DonneesToutesFormes()à x éléments ---> création de 5 objets Forme1, Forme2 ....Formex. Il me faut avoir préalablement déclaré Forme1 As object, Forme 2 As Object ....Formex As object. Le problème est que je ne connaîs pas x quand j'écris le code.

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.

Pour l'instant je m'y prends comme ceci : * je crée une tripotée de variable objets (50 par exemple) : Dim Forme1 As Object, Forme2 As Object jusqu'à Forme50 As object. * j'écris 50 lignes de création de forme en utilisant les données Forme1 = CreerForme (DonneesToutesFormes(0)) où CreerForme est une fonction retournant un objet Forme. Forme2 = CreerForme (DonneesToutesFormes(1)) etc * Quand Basic gémit, c'est que j'ai atteint la fin du tableau.

Si j'arrive à traiter cette erreur, je m'en sortirai mais 1- j'ai le sentiment de gâcher en déclarant des variables inutiles. 2- les macros c'est à priori pour éviter les taches répétitives, non ?

Agnès S.