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

Composants VCL Delphi Discussion :

Comment effacer des Items d'un TListView ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Comment effacer des Items d'un TListView ?
    Je débute sous Delphi et je ne m'en sort pas avec la suppression d'un Item dans une TlistView. Les Items que je veux effacer sont "Checked".
    A l'execution, mon code provoque une erreur sur la l'instruction GetNextItem.

    Pouvez vous m'aider ?
    Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    procedure TFPrincipale.BitBtn1Click(Sender: TObject);
    var
    i, cpt : integer;
    Item_List: TListItem;
    begin
      flag_modif_liste := True;
      cpt := 0;
      for i:=0 to ListView1.Items.Count-1 do {On vire 1 car on commence à 0}
        if ListView1.Items[i].Checked then
        begin
          cpt := cpt + 1;
          ListView1.Items[i].Selected := True;
        end;
      if MessageDlg('Voulez-vous éffacer : ' + IntToStr(cpt) + ' fichiers ?',
        mtWarning, [mbOk, mbCancel], 0) = mrOk then
      begin
          Item_List := ListView1.Selected;
          while Item_List <> nil do
          begin
            Item_List.Delete;
            Item_List := ListView1.GetNextItem(Item_List, sdAll, [isSelected]);
    //        deletefile(chemin_image_reference+Item_List.Caption); // desactivé pour le moment
          end;
      end;
    flag_modif_liste := False;
    end;

  2. #2
    Membre actif Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Points : 252
    Points
    252
    Par défaut
    Salem boyerf,

    Il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
      if MessageDlg('Voulez-vous éffacer : ' + IntToStr(cpt) + ' fichiers ?',
        mtWarning, [mbOk, mbCancel], 0) = mrOk then
      begin
          Item_List := ListView1.Selected;
          while Item_List <> nil do
          begin
    [color=blue]
            Item_List1 := Item_List ;
            Item_List := ListView1.GetNextItem(Item_List, sdAll, [isSelected]);
            Item_List1.Delete;
    [/color]
    //        deletefile(chemin_image_reference+Item_List.Caption); // desactivé pour le moment
          end;
      end;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Ok, probleme résolu
    Merci beaucoup !
    Ca fontionne trés bien !

    (il ne faut pas oublier de déclarer TListItem, c'est tout...)

    François

  4. #4
    Membre actif Avatar de Fares BELHAOUAS
    Homme Profil pro
    Développeur Flex & Java
    Inscrit en
    Mars 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Flex & Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 182
    Points : 252
    Points
    252
    Par défaut
    Salem François

    Il reste juste une remarque.

    Si l'utilisateur selectionne des items sans les cocher , ces derniers seront effacés aussi.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Salut Fares,

    C'est exact ! Je n'avais pas pensé à ça...
    J'ai donc modifié mon code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        if ListView1.Items[i].Checked then
        begin
          cpt := cpt + 1;
          ListView1.Items[i].Selected := True;
        end
        else
          ListView1.Items[i].Selected := False;

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

Discussions similaires

  1. Indentation des items dans un TListview
    Par secretman dans le forum Delphi
    Réponses: 4
    Dernier message: 19/05/2007, 13h43
  2. [C#] Comment trier des items d'un TreeView
    Par sorcer1 dans le forum C#
    Réponses: 2
    Dernier message: 21/03/2007, 11h53
  3. [Team Foundation Server] Comment ajouter des Items ?
    Par Dadou74 dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 27/07/2006, 16h36
  4. [VB.Net][DataGrid] Comment retirer des items d'un ComboBox ?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/12/2005, 12h46
  5. [VB.Net] Comment effacer des traits sur un graphique ?
    Par bert24 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/09/2005, 15h20

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