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

Delphi Discussion :

[ListView] : comment mettre à jour l'index des items ?


Sujet :

Delphi

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 20
    Points : 25
    Points
    25
    Par défaut [ListView] : comment mettre à jour l'index des items ?
    Salut,

    J'utilise une ListView avec 2 colonnes : la première contenant le numéro de l'index du fichier chargé et la seconde renvoit au nom de fichier lui-même...

    Cependant, j'aimerais rajouter un bouton "Supprimer" dans mon appli permettant d'effacer l'item sélectionné dans la ListView. Jusqu'ici ça fonctionne parfaitement sauf que je ne trouve pas le code pour mettre à jour le numéro d'index concernant la 1ère colonne.

    Voici un exemple un peu plus parlant. Je charge 5 fichiers, donc dans ma ListView j'ai quelque chose qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #  | Nom de Fichiers
    1  | ggg
    2  |  hhttt
    3  |  dfdd
    4  |  ddfd
    5  | sffer
    Admettons que je veuille supprimer le 3ème item. Alors pour l'instant, j'obtiens ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #  | Nom de Fichiers
    1  | ggg
    2  |  hhttt
    4  |  ddfd
    5  | sffer
    Or, je voudrais aboutir à quelque chose dans ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #  | Nom de Fichiers
    1  | ggg
    2  |  hhttt
    3  |  ddfd
    4  | sffer
    Sans recréer de subitems bien sûr. Une idée ? Ou une petite piste pour me mettre sur la voie ? Merci...

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Devans supprimer une ligne dans le ListView, tu as forcement l'index de cette ligne.
    Tu devrais boucler a partir de cette valeur + 1, jusqu'a 'ListView1->Items->Count' pour renommer les Items.
    Un petit exemple en CBuilder, désolé, puisque je n'ai point Delphi mais cela devrait être largement adaptable. (non ?)
    Dans ce petit bout de code, je pars de l'endroit qui a été cliqué dans la la liste;il te faut changer ceci par l'indice de la ligne a supprimer + 1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TListItem* pItem;  int val;
    for (int i = ListView1->ItemIndex; i < ListView1->Items->Count; i ++)
    {
            pItem = ListView1->Items->Item[i];
            val = StrToInt(pItem->Caption);
            val --;
            pItem->Caption = val;
    }
    delete pItem;
    En espérant t'aider,
    @ +

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup... Désolé pour la réponse tardive, vacances oblige.

    En Delphi, ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var pItem : TListItem;
          val :  Integer;
    begin
         for i := 0 to ListView1.Items.Count-1 do
            begin 
                   pItem := ListView1.Items.Item[i];
                   val := StrToInt(pItem.Caption);
                   Dec(val);
                   pItem.Caption := IntToStr(val);
            end;
    end;

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

Discussions similaires

  1. Mettre à jour la liste des items de combobox
    Par sagesse2 dans le forum VB.NET
    Réponses: 8
    Dernier message: 05/01/2015, 09h56
  2. [OpenOffice][Texte] mettre à jour l'index des tableaux
    Par Invité dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 05/10/2009, 13h32
  3. Réponses: 0
    Dernier message: 13/05/2008, 16h25
  4. Comment mettre à jour des montants monétaire?
    Par Philippe PONS dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/07/2007, 19h42
  5. [ODBC] Comment mettre à jour 2 bases ayant des noms de champs différents ???
    Par Alexlesilex dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/05/2006, 17h08

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