Pb sur Unload de controles ajoutés dynamiquement

Résolu
yohan_titi Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 6 décembre 2006 - 27 sept. 2005 à 10:31
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 27 sept. 2005 à 15:35
Bonjour à tous,

Voilà mon pb :
- Je créé d'abord dynamiquement des Tabstrip.
- Je créé ensuite dynamiquement des CheckBox sur chaque Tabstrip créé.

J'arrive à Unloader les Tabstrip mais je n'arrive pas à Unloader les CheckBox créés sur chaque Tabstrip.
L'index de chacun des CheckBox ne se suivent pas car je les créée suivant une combinaison.

J'ai essayé ça mais ça ne marche pas :

Dim CheckSupp As CheckBox

For Each CheckSupp In MonTabstrip(IndexduTabstrip)
Unload CheckSupp
Next CheckSupp

Si qqun pouvait m'aider parce que là je sèche royal.

Merci d'avance

15 réponses

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 11:17
ah mais si c que tu as réussi

et c'est ce que je te disais tout à l'heure
dès lors que tu supprime un control l'index de tous les controls change
donc à chaque fois que tu supprime un control il te faut refaire une récupération d'index
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 sept. 2005 à 12:16
salut,
eldim ->l'indice change? bah j'en apprend une bien bonne.
il ne manquerait plus que çà......
l'indice ne change pas, fort heureusement.

yohan -> ton erreur est due au fait que tu n'as pas que des CheckBox dynamiques, et que tu essaies de décharger TOUS les contrôles.
donc avant de décharger, tu vérifies "TypeOf". si c'est bien un checkbox (et je te souhaite qu'il n'y ai pas aussi des checkbox non-dynamiques) alors tu peux décharger.
PCPT
3
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 10:41
Bonjour à toi,

(Je suis mort d'avoir été autant de fois plagié....)

pour supprimer un control tu fais un dispose

nb:l'index de chaque control change à chaque fois que tu en supprime 1

A+
0
yohan_titi Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 6 décembre 2006
27 sept. 2005 à 10:45
Qu'est-ce que tu entends par "faire un dispose" ?, j'comprends pas trop.

Merci
0

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

Posez votre question
yohan_titi Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 6 décembre 2006
27 sept. 2005 à 10:53
précision : je suis en VB6 (en non en .net)
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 10:55
Ah pardon

Désolé je croyais que t'était en VB.NET

Ben essai avec un set NomControl=nothing
(non testé)
0
yohan_titi Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 6 décembre 2006
27 sept. 2005 à 11:02
Tu pouvais pas savoir, j'ai oublié de le préciser.

J'essayer mais ça ne marche toujours pas.
Il me met le msg "Erreur d'exécution 438: l'objet ne gère pas cette propriété ou cette méthode" sur la ligne :

For Each CheckSupp In MonTabstrip(IndexduTabstrip)
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 12:20
Salut pcpt !

Ben en tout cas .NET l'indice change... j'en ai donc déduit qu'il changeait aussi en VB6.

Et je te garanti qu'en VB.NET il change car ça m'a posé deux jours de réflexion acharné pour ma suppression de combobox
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 sept. 2005 à 12:29
eldim -> je ne connais pas .net, et comme le problème est en VB6....
cela dit, en VB6, il m'arrive très fréquemment d'utiliser des contrôles indexés, et de les repérer en sachant que le (2) est utilisé tout à fait différemment du (3).
en VB6, çà ne change pas, mais il me parraît assez inconcevable qu'il faille gérer le code plus ou moins dynamiquement en sachant que le code du (2) peut donc être faux....
(mais je te crois sur parole )
PCPT
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 13:43
Il n'y a pas de faux ou de vrai je vois pas vraiment le rapport...

M'enfin y a sans doute des choses qui m'échappent vu que je suis un autodidacte
(Si tu te met au .net je te dirai ce que j'ai fait et tu me diras ce que t'en pense..)
0
yohan_titi Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 6 décembre 2006
27 sept. 2005 à 13:58
Merci à tous les 2,

Ne vous fritez pas pour si peu, ça m'embetterai d'être à l'origine d'un conflit :)

PCPT, malheureusement j'ai quand même un CheckBox non dynamique (qui a l'index 0), mais voilà ce que j'ai fait et qui a l'air de fonctionner :

Dim CheckSupp As CheckBox

For Each CheckSupp In Me.Check1
If CheckSupp.Index <> 0 Then
Unload CheckSupp
End If
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 sept. 2005 à 13:59
quand je parle de "faux", c'est à dire....
admettons (très bêtement) 3 CommandButton
Cmd(0) Cmd(1) Cmd(2)

0 => msgbox time
1=> grise le 0
2=> unload

je supprime le 1 en cours d'execution, je considère que mon cmd(2) est donc un faux....., puisque de "quitter", c'est finalement lui qui va griser le cmd(0)... (d'après ce que tu dis en .Net) et çà, çà me parraît un peu très merdique....
non?

ce problème ne se présente pas en VB6 en tout cas

(.net ... j'y pense oui, mais pas pour cette année)
PCPT
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 14:16
Non en fait non
En .NET la procédure est liée au control par un ajout d'événement sur celui-ci...

tu n'as pas du me comprendre mais c pas grave

je te disais simplement que si tu enlève un control d'un formulaire l'index de chaque control du formulaire change exemple :
with FRM
.control(1).name = "Toto"
.control(2).name = "Bidule"
.control(3).name = "Machin"
.control(1).delete
.control(1).name = "Bidule"
...
end with

et quand y a plus d'une centaine de controls à gérer ça ne se passe pas forcément dans l'ordre que tu le souhaite...

voila le problème que j'avais eu, et ce que je pensais qu'il y avait ici

Et les procédure sont indépendantes de l'indice d'un control puissequ'un control n'est qu'une class... lol
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 sept. 2005 à 14:50
ok (je sens que je vais rester sous VB6 encore quelques temps ...)
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 sept. 2005 à 15:35
C'est comme tu veux m'enfin y a des choses qui se font beaucoup plus facillement et plus rapidement en VB NET plutot qu'en VB 6...

Et... o pi j'suis pas vendeur lol
A+
0