Création dynamique d'objets

Résolu
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 - 21 juil. 2006 à 18:02
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 - 23 juil. 2006 à 15:30
Bonsoir,

j'essaie de créer dans une Frame une série de "Option + Command + Line " dont je ne connais pas le nombre à l'avance. J'ai donc choisi la création dynamique avec un index  et j'essaie de les mettre les uns sous les autres. Ca parait simple mais, si les Command et Line sont bien en face, ce n'est pas le cas des Options. Je galère là dessus depuis 2 jours.
Par la suite, le click sur un Option, rendra enabled la Command correspondante (false au départ) et la Line en face reflètera la décision.
Je crois que mon problème est un problème de cohérance de Heigh car pour une Option donnée, il peut y avoir plusieurs Commands et leur ligne assosiée, comme dans un menu
Exemple:
 O  Faire le tour         Région         ____________________
                                  Moyen        ____________________
 O    Stopper              Musique      ____________________
                                    Lumière     ____________________

etc....

Merci de me dire où je me plante et comment faire.
M@chto

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 juil. 2006 à 02:26
Re
Si tu as mal calculé la position des Options button, on ne peut pas te le dire !
Essayer de dessiner les controles sur une feuille et évalue le Left et Top de chaque composant, tu n'auras plus qu'à le traduire en code.
Ton histoire de Command qui apparait et ta Line qui reflète : je n'ai pas tout pigé, mais c'est hors du sujet.

Regarde aussi ma réponse à propos de ta Line dans ton précédent Post

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 juil. 2006 à 19:38
Re
Si je décrypte ce que tu dis (tu n'es pas tjrs très clair), tu as :
Une Frame de hauteur 990
Un bouton de hauteur 440
Et peux mettre 7 boutons ? Tu comprends bien que ce n'est pas possible !
Revois les dimensions de tes composants, il y a quelque chose qui cloche dans tes explications.
Ton bouton a peut-être une hauteur de 440 à l'origine, mais peut-être modifies-tu sa hauteur par programme ?

En ce qui concerne l'alignement des composants : Si tu mets un bouton en 440 et un Option en 440, ils seront bien en 440, mais si l'option est moins haute que le bouton, c'est sûr, ils ne seront pas alignés.

C'est de la mathématique de base, une histoire de poteaux et d'intervales, pas compliqué, suffit de se concentrer et de dessiner sur papier s'il le faut.

Quant à ta ligne, je n'ai rien compris à ton histoire de curseur et de synchro, pas grave.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 juil. 2006 à 01:52
Re
(ton image n'est visible de tout le monde que si elle est visible depuis internet, sur une page perso par exemple. Problème connu et tjrs pas résolu, désolé)

Ok, mais les dimensions que tu me donnes, tu les récupères quand ?
Assures-toi de les lire pendant le run de ton programme.
Fais faire une pause à ton programme et vas dans la fenêtre de debug (Ctrl-G) et tape
? Me.Frame1.Height, Me.Command1.Height
Ont-ils toujours ces valeurs ?

De toute façon, tu dois impérativement lire ces valeurs (et pas les avoir fixé dans le programme) pour faire tes calculs de positionnement.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 1
22 juil. 2006 à 11:18
Ok et merci.
Pour résumer:
Quand ma Frame1 a une Heigh de 990 et mon Command1(), appartenent à la frame1, une Heigh = 440, je mets pourtant 7 Command1() dans cette hauteur alors que 990/440, ça ne fait que 2!!
Je me trouve donc incapable de calculer la hauteur finale de ma Frame1 quand j'aurai mes 128 command1() - quantité maximale - que je crée dynamiquement.
Et quand je crée x option1() (heigh =440) avec y command1() (heigh = 440 et Font identiques), ça ne tombe pas en face! (Dans la même Frame1)
Je n'y comprends rien.
Quant à la ligne verticale de l'autre message, c'est un "curseur" qui se balade sur mes lines pour visualiser des synchros (évènements générés par les Command1() )
Merci pour la suite également.
M@chto
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 1
22 juil. 2006 à 20:50
Bonsoir,


c'est justement parce que c'est mathématique que je ne comprends pas. Frame1, le paramètre Heigh est à 990. Command1, le parametre Heigh est à 440, idem pour l'OptionButton. Mon Option1 et mon Command1 représentent en hauteur, graphiquement, visuellement, 1/7° de la hauteur de la Frame1 qui les contient (mais si!). Je les crée en dynamique
Je ne comprends pas quel paramètre intervient pour que les échelles ne soient pas les mêmes.

M@chto
0
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 1
23 juil. 2006 à 15:30
Bonjour, j'ai bien à chaque création d'un Option1 et Command1 Heigh=450 et Frame1.Heigh=990.
C'est incompréhensible. Donc je vais faire autrement (je sais pas encore) puisque je sais que je rentre 7 ensembles dans 990 de la Frame.
Par contre, mon problème d'alignement à été résolu par ... des paranthèses (j'ai honte!!)
Un grand merci pour cette aide
M@chto
0
Rejoignez-nous