Insertion d'une ligne dans une listbox
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Insertion d'une ligne dans une listbox



  1. #1
    invite1038f851

    Insertion d'une ligne dans une listbox


    ------

    Bonjour,
    j'ai un problème. Je souhaiterais ajouter une ligne dans une listbox (déjà remplie). J'arrive à ajouter une ligne à la fin de la liste (position par défaut je présume) mais je voudrais l'insérer à une ligne donnée.
    Je m'explique : ma listbox est formée de 4 colonnes correspondant aux coordonnées X,Y,Z et t (temps) de plusieurs points. J'ajoute alors une ligne en précisant ces 4 paramètres. Mais je n'arrive pas à la faire s'insérer où je veux : je veux qu'elle s'insère en fonction de la valeur de t.
    Par exemple si mon nouveau point a t=38500 je voudrais qu'il s'insère à la ligne suivant t=38499 et précédent t=38505 (par exemple).

    Pour l'instant j'ai écris ce qui suit mais je suis perdu, j'arrive pas à avancer :
    Code:
    t = Val(Txtb_t.Text)
     
    Dim i, j As Integer
    j = Liste.Lstb_pts.ListCount
     
    For i = 1 To j
     
    ??????
     
    Liste.Lstb_pts.AddItem (Val(Txtb_x.Text))
    Liste.Lstb_pts.List(Liste.Lstb_pts.ListCount - 1, 1) = Val(Txtb_y.Text)
    Liste.Lstb_pts.List(Liste.Lstb_pts.ListCount - 1, 2) = Val(Txtb_z.Text)
    Liste.Lstb_pts.List(Liste.Lstb_pts.ListCount - 1, 3) = Val(Txtb_t.Text)
     
    Next
    Merci pour votre précieuse aide qui me permettra d'avancer !

    -----

  2. #2
    invite1038f851

    Re : Insertion d'une ligne dans une listbox

    Désolé j'ai oublié de précisé qu'il s'agit de visual basic !

    Merci par avance !!

  3. #3
    sitalgo

    Re : Insertion d'une ligne dans une listbox

    B'jour,

    Si je me rappelle bien, pour insérer un item il faut rajouter le paramètre. J'ai vérifié mais pas essayé, il n'y a pas l'exemple exact, il faut deviner.
    Code:
    Liste.Lstb_pts.AddItem (Val(Txtb_x.Text)) item:=n
    Pour trouver n, vu que les items sont déjà classés, une boucle for suffit.
    Le premier item porte le numéro 1.
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

  4. #4
    invite1038f851

    Re : Insertion d'une ligne dans une listbox

    Merci sitalgo,

    maintenant mon problème vient de la boucle. Je pense que c'est simple mais vu que je suis débutant j'ai du mal à produire !!
    Donc si jamais quelqu'un peut me donner le code correspondant pour récupérer le numéro de ligne où doit être inséré le nouveau point !...
    Merci d'avance !

  5. A voir en vidéo sur Futura
  6. #5
    sitalgo

    Re : Insertion d'une ligne dans une listbox

    Il me faudrait ton code pour faire qqchose de cohérent et que je puisse m'y retrouver dans tes définitions comme
    Liste.Lstb_pts.List(Liste.Lstb _pts.ListCount...
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

  7. #6
    invite42cd6fb5

    Re : Insertion d'une ligne dans une listbox

    Citation Envoyé par sitalgo Voir le message
    B'jour,

    Si je me rappelle bien, pour insérer un item il faut rajouter le paramètre. J'ai vérifié mais pas essayé, il n'y a pas l'exemple exact, il faut deviner.
    Code:
    Liste.Lstb_pts.AddItem (Val(Txtb_x.Text)) item:=n
    Pour trouver n, vu que les items sont déjà classés, une boucle for suffit.
    Le premier item porte le numéro 1.
    bonjour,

    Tu es sur pour le n°1 pour le 1er item ? Dans une listebox, il me semble bien que la 1ere valeur a pour index 0 (ce qui m'a toujours posé des problèmes lors de mes programmations. Certains objets ont des index démarrant à 0, et d'autres à 1...)

  8. #7
    sitalgo

    Re : Insertion d'une ligne dans une listbox

    Citation Envoyé par Nicolasm Voir le message
    Tu es sur pour le n°1 pour le 1er item ?
    C'est ainsi dans l'aide.
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

  9. #8
    invite1038f851

    Re : Insertion d'une ligne dans une listbox

    Merci Sitalgo pour ta proposition d'aide. La liste de points importée dans la listbox est déjà classée par t croissant. J'avais pensé parcourir la liste avec un while en disant tant que t à insérer > aux t de la liste on continue de parcourir la liste et dès que t à insérer devient < aux t de la liste ; on retient la position.
    Mais j'arrive pas à traduire ceci en ligne de code, même si je pense que c'est pas trop compliqué.
    Pour le point que j'insère, je donne ces valeurs par :
    Txtb_x
    Txtb_y
    Txtb_z
    Txtb_t

    Ma listbox est Liste.Lstb_pts.

    Un grand merci d'avance !

  10. #9
    sitalgo

    Re : Insertion d'une ligne dans une listbox

    D'après ce que je comprends tu as des colonnes dans la liste, j'ai eu fait ça une fois mais je n'ai pas retrouvé dans cette aide imbuvable la syntaxe qui fait cela.
    Voilà quand même un exemple de principe de la boucle.
    Code:
    Private Sub machin()
    Dim ii&, nbitem&
    
    nbitem = Liste.Lstb_pts.ListCount
    For ii = 1 To nbitem
        If Txtb_t < Liste.Lstb_pts.List(ii) Then
            insere_liste (ii)
            Exit For
        ElseIf ii = nbitem Then
            insere_liste (ii + 1)
        End If
    End Sub
    
    Sub insere_liste(ie&)
            Liste.Lstb_pts.AddItem Str(Val(Txtb_t.Text)), Index = ie, Column = 3
            Liste.Lstb_pts.AddItem Str(Val(Txtb_x.Text)), Index = ie, Column = 2
            Liste.Lstb_pts.AddItem Str(Val(Txtb_y.Text)), Index = ie, Column = 1
            Liste.Lstb_pts.AddItem Str(Val(Txtb_z.Text)), Index = ie, Column = 0
    End Sub
    Je n'ai pas essayé, je ne sais pas si le paramètre column fonctionne.
    Il vaut mieux mettre str devant val puisque la listbox admet du texte et non des nombres.
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

  11. #10
    invite1038f851

    Re : Insertion d'une ligne dans une listbox

    Merci beaucoup pour ta réponse Sitalgo. Ca marche !

    Mais le problème est lorsque je veux insérer plusieurs points, le programme garde en mémoire la position calculée et les points s'insère tous au même endroit. Donc est-il possible de régler ce problème ?

    Encore merci par avance.

  12. #11
    sitalgo

    Re : Insertion d'une ligne dans une listbox

    Pour ça il faut regarder chaque ligne de programme. Normalement ce n'est pas possible avec celui que j'ai fait, il doit y avoir un problème avec l'adaptation au tien.
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

Discussions similaires

  1. Dessiner une simple LIGNE dans une fenetre
    Par invite4671370c dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 13/10/2009, 20h37
  2. Tirer une ligne à partir d'une prise...
    Par quenotte dans le forum Bricolage et décoration
    Réponses: 8
    Dernier message: 16/04/2009, 20h51
  3. Couleur d'un item dans listbox en VB 6.3
    Par inviteb2917e5f dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 15/03/2009, 18h00
  4. insertion d'une image dans une document lateX
    Par inviteaa8f7e46 dans le forum Logiciel - Software - Open Source
    Réponses: 19
    Dernier message: 15/08/2007, 23h45
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...