PrinceSilk
Messages postés56Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention26 mai 2013
-
1 juin 2008 à 13:51
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
1 juin 2008 à 15:54
Voila mon problème :
J'ai besoin d'une Listbox, ou au moins d'un objet ce comportant comme tel (un tableau qui, lorsqu'on en retire une valeur située à un index, met a jour les indexs des valeurs situées plus loin:
Exemple, mon tableau contient des chiffres de 0 a 999, si je vais à l'index 500, j'obtiendrai comme valeur 500, et si je retire la valeur (Par Liste.RemoveItem (500)) de l'index 500 et qu'après je lui demande de lire la valeur de l'index 500, j'obtiendrai 501 (qui était la valeur suivante)
Le problème, c'est que mon programme ne contient aucune Form, donc impossible de créer une vrai ListBox.
Tout dois tenir dans mon module...
J'ai bien essayer avec
Dim Liste as ListBox
Mais j'avoue ne pas comprendre le principe des With et autres choses nécessaires pour que la ListBox fonctionne (Le programme refuse de faire Liste.Additem , Liste.Clear ect ect)
Merci de vos lumières !!
A voir également:
Créer et Utiliser un controle en dehors d'une Form
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 1 juin 2008 à 15:54
Tu ne peux pas utiliser un controle en dehors d'un écran. Un controle a obligatoirement besoin d'un container pour etre posé. Ce container est toujours un écran ou un autre controle posé sur un écran.
Le message d'erreur parlant de with, pas très compréhensible, j'en conviens, c'est tout simplement parce que ton controle Liste n'existe pas lorsque tu essaye de lui affecter un item. Il n'a pas été créer (il ne suffit pas de le déclarer, c'est plus complexe). Et, pour les raisons indiquées au dessus, tu ne peux pas le créer.
Par contre dans ton cas, tu peux utiliser les collections :
----
Dim i As Integer
Dim Liste As Collection
Set Liste = New Collection
For i = 1 To 1000
Liste.Add (i)
Next
MsgBox (Liste.Item(500))
Liste.Remove (500)
MsgBox (Liste.Item(500))
, ----
, ----
[code.aspx?ID=41455 Coloration Syntaxique pour VB6 By ]