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

C++Builder Discussion :

Changer dynamiquement la couleur d'un item d'une listview


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Changer dynamiquement la couleur d'un item d'une listview
    Bonjour,

    J'empile dynamiquement des objets dans une listview. Seulement je voudrais pouvoir repérer les objets défectueux que j'empile (lors de leur création on a relevé une erreur sur un des champs de l'objet). Pour cela je voudrais qu'ils s'affichent d'une autre couleur que les autres items de la listview. Seulement je ne sais pas comment on fait pour changer dynamiquement la font d'un item.

    Autre problème : lorsque qu'aucun item n'est selectionné
    MyListView->Selected n'est pas le pointeur Null et du coup quand je fait un traitement sur la selection des items j'ai une erreur quand rien n'est selectionné. Comment détecte-t-on qu'aucune selection n'a été faite si ce n'est avec MyListView->Selected == Null ???

  2. #2
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    1- Je pourrais te dire comment changer la couleur de fond d'une ligne dans un TListView mais pas le font d'un Item. Pour faire ceci il faut implémenter l'événement OnAdvancedCustomDrawItem. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Item->StateIndex == 1)
       Sender->Canvas->Brush->Color = clRed; //fond en rouge
    else if (Item->StateIndex == 2)
       Sender->Canvas->Brush->Color = clWhite;//fond en blanc
    sachant qu'à chaque fois que tu crée un TListItem pour la rajouter il faut renseigner le StateIndex.

    2- Pour tester si un ou plusieurs éléments sont sélectionnés tu peux tester TlistView->SelCount qui te renvoie un entier.

    Bon courage
    "Don't think you are, know you are..." (Morpheus)

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    j'ai fait ce que tu as dit et ça marche. c même mieux de changer la couleur de fond que la font (même si je pense que ça doit être possible).

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/09/2007, 18h11
  2. Réponses: 1
    Dernier message: 29/08/2006, 12h01
  3. Comment changer la couleur d'un item d'une listBox?
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 19/05/2006, 16h52

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