AJOUTER DES TABLEAUX DE CONTRÔLE DYNAMIQUE SANS UTILISER "LOAD"

Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 - 26 août 2003 à 15:06
Ce.plusplus Messages postés 47 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 14 septembre 2012 - 30 mai 2008 à 09:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8357-ajouter-des-tableaux-de-controle-dynamique-sans-utiliser-load

Ce.plusplus Messages postés 47 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 14 septembre 2012
30 mai 2008 à 09:23
On ne peut pas changer certaines propriétés..
par exemple :
With ObjPC
.Style = 1
.Visible = True
.top = top
.left = left
.Caption = name
.height = height
.width = width
End With

".Style = 1" ne peut être changé à l'execution, et cela provoque une erreur... donc si on veut un checkbox en forme de bouton, et bien on peut pas l'avoir :(
cs_nihaoma Messages postés 140 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 2 février 2010
9 août 2005 à 15:40
bonjour à tous,
J'ai une petite question concernant la méthode Load, est-ce possible de charger par cette méthode tout d'un groupe d'objets simplement en chargeant une frame dans laquelle seront préalablement placés tous les objets à charger ?
merci pour vos réponse,
Noxid Messages postés 78 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 4 mai 2008
30 nov. 2003 à 16:00
Y'a un moyen de créer des Shape de cette facon SVP?
cs_Troopers Messages postés 81 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 29 août 2003
29 août 2003 à 16:30
En ce qui concerne les évènements, j'ai apporté un début de solution
cf: http://www.vbfrance.com/article.aspx?Val=10306
Bazinou Messages postés 9 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 26 mai 2004
29 août 2003 à 11:30
Idem, je ne suis pas très optimiste sur la question.

Etant donné qu'il faut que le contrôle soit déclaré durant la création pour pouvoir lui implémenter du code évènement, et qu'apparamment on ne peut créer de tableau de contrôles (sauf en posant des groupes de contrôles), je ne vois pas bien quelle pourrait être la porte de sortie.

Baz
borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
29 août 2003 à 11:08
T'as raison, mais je ne pense pas que ce soit possible :(

Borntoclimb
cs_Bigonoff Messages postés 7 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 8 octobre 2003
28 août 2003 à 12:17
Salut
------

Effectivement, le tableau n'est pas dynamique, ce n'était pas le but de l'explication. Le but était d'arriver à accéder aux contrôles par un index sans utiliser "load". Le reste me semblait secondaire, vu que je pense que celui qui veut créer des contrôles dynamiques sait gérer un tableau (ou une collection). J'ai donc placé le strict minimum, ce n'est pas un programme réel.

Les remarques sont toutefois fondées, mais je pense que le plus gros problème à résoudre est de savoir comment accérer aux événements des contrôles créés, comme le dit Bazinou. Si quelqu'un a une idée...

En effet, dans mon application, je n'utilisais que les propriétés, pas les contrôles, je n'ai donc pas remarqué ce problème.

A+

Bigonoff
cs_Troopers Messages postés 81 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 29 août 2003
27 août 2003 à 14:41
Bonjour!

Pour le tableau de références Leds(), il est possible de le remplacer par une collection: myCollection.Add LedDyn ce qui facilite la récupération d'objet: myCollection(sKey).Top ou myCollection(lIndex).Top
on peut également utiliser l'instruction for each ce qui n'est pas possible avec le tableau
borntoclimb Messages postés 98 Date d'inscription vendredi 4 janvier 2002 Statut Membre Dernière intervention 7 mars 2006 4
27 août 2003 à 14:20
En fait je ne suis pas certain que cela soit vraiment dynamique. Puisque tu declares la taille de ton tableau directement, je pense que VB leurs alloue directement une place en memoire (á verifier). Une alternative serait de faire:

dim CtrlLabelDyn() as VB.Label

Ensuite tu utilises:

Redim Preserve CtrlLabelDyn(i)

i étant le numero du control. Ensuite tu fais un Set et tu changes les proprietes comme indique dans ton example.

Cela ne permet toujours pas d'avoir les evenement mais te permet d'ajouter un nombre X de control sans avoir á decider ce nombre avant de compiler le prog...

Borntoclimb
Bazinou Messages postés 9 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 26 mai 2004
27 août 2003 à 10:56
Bjour

Un inconvénient tout de même à cette méthode : impossible de gérer des évènements pour les contrôles ajoutés, sauf pour le dernier qui reste attribué à LedDyn. C'est l'avantage du vrai groupe de contrôles, qui permet de définir un contrôle type avec ses évenements, puis d'ajouter dynamiquement d'autres contrôles sur le même modèle.

C'est dommage car une solution au problème m'intéressait aussi, dans le cas de plusieurs groupes d'OPTION indépendants dynamiques, où la méthode du Load ne suffit plus.

@+
cs_Bigonoff Messages postés 7 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 8 octobre 2003
26 août 2003 à 17:39
Salut
------
Le gain, c'est que c'est pur dynamique, nul besoin de placer un objet à la création, ce qui n'est pas toujours possible.
Pour supprimer, ça fonctionne avec unload.
A+
Bigonoff
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
26 août 2003 à 17:27
Y at il un gain par rapport à l'instruction Load ?
Et ensuite si je veux supprimer un object ?
Bon, en tout cas c'est bien d'avoir exposé cette méthode.
A+
Afyn
Navedac
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
26 août 2003 à 15:06
Ca fait super longtemps que je cherchais un truc pareil pour avoir des noms uniques. C'est vraiment le pied. Merci bcp
Rejoignez-nous