Question bête...

Résolu
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 - 11 août 2005 à 17:16
Rjoe Messages postés 59 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 9 mars 2006 - 14 août 2005 à 23:40
Salut tout le monde,



J'ai cru comprendre en regardant sur le forum qu'on pouvait créer un controle sur un formulaire à partir du code.
En gros, je voudrais que, dès que l'utilisateur clique sur un bouton,
ça crée des checkbox et des textbox et je voudrais pouvoir les placer
où je veux sur ma form, mais je ne connais pas la syntaxe. Je
suis obligé de faire comme ça parce que en mode création je ne peux
plus créer manuellement de controles (j'ai atteint la limite qui est à
priori de 100).



Merci à tous ceux qui pourront me répondre (et même aux autres d'ailleurs, lol !!!)



Cédric

19 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 août 2005 à 18:18
ha bon !

ben alors tout va bien tu peux créer tes mille ou plus

mais attention tu peux pas les créer 2 fois.



quand tu les crée, ils sont pas visibles, et ils se mettent en position 0,0

à toi de voir les valeurs de x et y



Private Sub Command1_Click()

Dim i As Integer



For i = 1 To 1000

Load Text1(i)

Text1(i).move x, y

Text1(i).Visible = True

x = x + ???

y = y + ???

Next

End Sub



Daniel
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
11 août 2005 à 18:31
Pas de débat sur les limites du nombre de controles, peut être sur la capacité visuelle d'un utilisateur lambda, mais passons si tes utilisateurs ont une vision de super-héro ! Juste une considération :

ex :
1 frame + multitude d'optionbuttons = multitude de controles
1 combobox avec multitude d'items = 1 controle
et
multitude de checkbox = multitude de controles
1 listbox en multiselect = 1 controle

pour les textbox, faut voir le projet. Peut-être une listview ?

Mais ce n'est juste que mon avis.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
12 août 2005 à 11:37
essayes ça:



Set textbox1( i ).container = frame1(i)

Daniel
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
11 août 2005 à 17:22
Salut
Cette limite est aussi valable en mode Run : Tu ne pourras pas en ajouter !

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

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
0

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

Posez votre question
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
11 août 2005 à 17:28
oups !!!

et comment je fais alors ???? j'ai bien pensé mettre ces nouveaux
controles dans une autre form mais ça ne sera pas pratique du tout pout
l'utilisation de mon programme ! ya pas moyen de contourner
??? :'(



En tous cas, merci quand même !



;) Cédric
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
11 août 2005 à 17:35
au fait Jack, ça m'intéresserait quand même de savoir la syntaxe pour créer un contrôle, tu pourrais me tuyauter steup ???

Merci beaucoup (j'adore ta citation de Socrate)



;)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 août 2005 à 17:37
non, non il n'y a pas de limite en dynamique



Private Sub Command1_Click()

Dim i As Integer



For i = 1 To 1000

Load Text1(i)

Next

End Sub



Private Sub Command2_Click()

Dim i As Integer



For i = 1 To 1000

Unload Text1(i)

Next

End Sub


Daniel
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
11 août 2005 à 17:37
OK avec jack.
Ce n'est pas parce qu'on peut créer des controles en mode run que ça résoudra ton problème.
Il faudrait plutot revoir ton projet. Par ex, pour des checkbox ou des options buttons, il existe les listbox et/ou combobox qui peuvent t'aider à réduire considérablement le nombre de tes controles.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 août 2005 à 17:39
jack tu es certain des 100 ?
Windows admet 255 controles par dialog en template depuis win95 et au delà uniquement limité que par la mémoire ou 0xFFFE controles si on les atteint par création dynamique.
Serait-ce intrinsèque à VB ?

ciao...
BruNews, MVP VC++
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
11 août 2005 à 17:43
Désolé Daniel mais ce que tu m'as passé ne fonctionne pas ! j'ai bien
l'impression que la limite de 100 contrôle s'applique aussi en mode run
! :(

Merci pour ton aide quand même !

Merci à Jack et CanisLupus, je vais essayer une autre approche.



Ce qui me gêne c'est que sous VBA avec Excel la limite (s'il y en a
une) est vachement plus importante : j'avais créé le même formulaire
sous VBA et je n'avais pas eu de pb, je veux en faire un éxécutable
autonome maintenant et je rencontre plein de pb dans le passage de VBA
à VB6 !!!!



Tant pis !



Merci pour votre aide à tous !



;)
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
11 août 2005 à 17:48
Salut BruNews, le temps de poster ma réponse et tu avais répondu...

Je sais pas si la limite en dynamique est la même mais en tous cas le code de daniel me donne un message d'erreur :

"Erreur de compilation :

Nombre d'arguments incorrectsou affectation de propriétés incorrect"



Voilou



Le truc c'est que je ne connais pas la syntaxe pour créer un controle
en dynamique donc je ne sais pas si le code de Daniel est bon !

C'est quoi le code pour créer une checkbox par exemple s'il vous plait ?



Merci pour voter aide en tous cas ;)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 août 2005 à 17:58
je maintiens 255 en non dynamique.

et la seule limite en dynamique c'est la taille de la mémoire.

j'ai créée mes 1000 TexBox en mode compilé ou pas


pour créer en dynamique il faut d'abord en mettre 1 avec son index à zéro.


Daniel
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 août 2005 à 18:09
tout à fait, en dynamique c'est la mémoire qui limite ou la table de handles (16 bits de long) du processus qui sera pleine.

ciao...
BruNews, MVP VC++
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
11 août 2005 à 18:11
Ben tu as une idée alors pour expliquer le message d'erreur suivant :



"Limite atteinte : impossible de créer davantage de contrôle pour cette feuille"



une autre question bête : un label et une frame et une SStab, c'est considéré comme des controles aussi ?

Parce que si c'est le cas je doit pas être loin des 255 mais ce qui est sûr c'est que je suis très loin des 1000 !



En tous cas Daniel, quand je clique sur mon bouton Command1, la
première fois il ne se passe rien (du moins j'en ai l'impression) et la
deuxième fois il me met objet déjà chargé (un message d'erreur quoi !)



;)
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
11 août 2005 à 18:16
wouhaouh, à peine le temps de répondre qu'il y a 2 messages de plus !

J'ai exécuté ton prog Daniel mais je ne vois pas de nouveau textbox
s'afficher je suppose qu'ils devraient d'afficher tous en haut à gauche
avec .left 0 et .top 0 non ? mais là, yen na même pas un qui
s'affiche !

Vraiment je ne comprend pas !



;)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 août 2005 à 18:18
quand on parle de controles il faudrait en fait parler de handle, tout controle est une fenetre et a donc un handle identifiant sinon n'existerait pas.
SStab est un controle (fenetre) qui en comporte plusieurs autres (childs) donc plusieurs handles utilisés.

ciao...
BruNews, MVP VC++
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
12 août 2005 à 11:33
Salut tout le monde, je sais que vous m'avez bien aidé mais j'ai juste une petite question :

J'ai une frame1(0) sur mon formulaire et un textbox1(0) sur ce même formulaire

Si je fais:



Dim i as integer

For i = 1 to 5

load frame1( i )

load textbox1( i )

Next i



comment faire pour que ma textbox1( i ) soit dans ma frame1( i ) ?



Je sais pas si qqun lira cette question maintenant que vous avez
répondu aux autres et que les réponses sont validées mais c'est dommage
de surcharger le forum avec un autre post !

Voilou, si par hasard qqun pouvait m'aider ce serait trop du ballon !



Bonne prog ;)



Cédric
0
Yaume1 Messages postés 86 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 13 septembre 2005 1
12 août 2005 à 11:42
Trop de la balle !

t'es vraiment un chef Daniel, qu'est-ce que je ferais sans toi ??? lol



Tu m'as vraiment sauvé la vie avec tes réponses, merci pour tout !



@ bientôt j'espère !



Cédric
0
Rjoe Messages postés 59 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 9 mars 2006 2
14 août 2005 à 23:40
sauvé la vie a ce point?

io
0
Rejoignez-nous