IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

mémorisation d'une Listbox


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut mémorisation d'une Listbox
    Bonjour,

    voilà, je voudrais pourvoir "stocker" une Listbox entière dans une variable, pour pouvoir ensuite l'appeler plus tard dans une procédure. Est-ce possible ? (la listbox contient 2 colonnes).

    Est-il ossible de faire ceci ou alors faut-il "mémoriser" chaque entrée de la listbox pour pouvoir la recontruire ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Bonjour,

    je dirais "Why not" dans un anglais impeccable : utilse un tableau à deux dimensions à mon avis

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut
    MmmmMmouiuiii ?

    Concrètement, puis-je stocker la List Box dans une variable et y faire appel ensuite ? du genre Listbox1 = Variable1 et ensuite l'appeler ? il faut pas spécifier qui est quoi ? parceque là, ca plante

    En gros j'ai une procédure qui génère une Listbox à la fin, avec 1 certain ordre dans les lignes. Cette procédure doit débuter par la lecture de la Listbox générée juste avant (en gros la Listbox 2 et générée en partant de la Listbox 1).

    je voudrais stocker cette Listbox dans une sorte de "variable"

  4. #4
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Phase enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim strTemp as string
    Dim iPnt as Integer
    strTemp=""
    For iPnt=0 to List1.ListCount-1
      strTemp= stTemp & List1.List(iPnt) & VbCrLf
    Next
    Phase Reconstitution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Tble as Variant
    Tble=Split(strTemp,VbCrLf)
    List1.Clear
    For iPnt=0 to Ubound(Tble)-1
     List1.Additem Tble(ipnt)
    Next

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut
    merci pour cette réponse Delbeke, mais pourrais tu me l'expliquer rapidement ? J'avoue être débutant en progra et j'ai beaucoup de mal (belle métaphore...) à comprendre ce que fait ta procédure.

    Merci encore pour ta patience

  6. #6
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Citation Envoyé par Zimzimut
    (belle métaphore...)
    Pléonasme plutôt ?
    ___________________________________________
    Bonjour,

    Tu pourrais aussi(comme toujours j'ai des idées "non communes"... mais bon "un clavier Azerty en vaut deux" ... ) stocker les élements de ta listbox dans une table access par exemple et de ce fait tu pourrais y acceder facilement...

    Cordialement

  7. #7
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Pourquoi donc! Il suffit de la 'pousser' directement en paramètre de ta procédure. Si tu veux en envoyer une copie plutôt que la procédure modifie ta listbox, tu spécifie 'ByVal' dans la définition de ta procédure. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub maProcédure(ByVal maListe As ListBox)
        ' le code de ma procédure
    End Sub
    Parcontre, si tu veux que ta ListBox soit modifiée via ta procédure, soit tu ne mets rien devant le nom de ton paramètre, soit tu mets 'ByRef' qui a le mérite d'être clair. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub maProcédure(maListe As ListBox)
        ' le code de ma procédure
    End Sub
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub maProcédure(ByRef maListe As ListBox)
        ' le code de ma procédure
    End Sub

  8. #8
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    Tout à fais zazaraignée, c'est ce qu'on appel le passage de paramètre "par valeur" et le passage "par adresse".
    Petite explication pour Zimzimut :
    En gros lorsque ta liste s'appel ListBox1, ceci est une variable (ou plutot un pointeur qui pointe sur une zone mémoire). Donc tu peux créer un autre pointeur et lui demander de pointer au même endroit (passage par adresse = ByRef ou rien du tout). Le passage par valeur (ByVal) signifie que l'on ne fait passer que la valeur de la variable, on en fait donc une copie (nouvelle zone memoire avec un nouveau pointeur, il sagit donc d'une variable diférente), et lorsque l'on modifie la copie, l'originale ne bouge pas.
    J'espère avoir été clair dans mes explications
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16
  2. [struts] mémorisation d'une checkbox avec cookie
    Par rocco dans le forum Struts 1
    Réponses: 3
    Dernier message: 22/04/2004, 12h39
  3. Réponses: 3
    Dernier message: 25/03/2004, 11h35
  4. [debutant][servlet]erreur causée par une listBox
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/03/2004, 10h53
  5. Icône a coté du texte dans une ListBox
    Par joce3000 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/12/2003, 02h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo