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 :

Sélectionner la zone d'un SubItem d'une TListView


Sujet :

C++Builder

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Points : 146
    Points
    146
    Par défaut Sélectionner la zone d'un SubItem d'une TListView
    Bonjour,

    J'aurais une question :

    Imaginons que j'ai un TListView avec 5 Colonnes par exemple.

    Je voudrais quand je clique sur un SubItem de la TlistView (donc dans une colonne, par exemple ligne 3 et colonne 2), que la zone correspondante au SubItem soit mise en surbrillance (pas toute la ligne).

    Auriez-vous une idée sur la façon de pouvoir effectuer ceci, si cela est possible ?

    Merci
    Fred

  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,

    J'ai une solution peut etre même si ce n'est pas du grand art....

    Dans le .H:
    private :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            bool pSelected;
            int IndexR;
    Dans le OnCustomDrawSubItem de l'objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TCanvas *pCanvas = ((TListView *)Sender)->Canvas;
    pCanvas->Brush->Color = clGreen;
    if (State.Contains(cdsSelected) || (pSelected == true && Item->Index == IndexR))
    {
    pCanvas->Brush->Color = clBlack;
    pSelected = false;
    }
    Dans le OnMouseDown de l'objet :

    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
     
      LVHITTESTINFO lvhtti;
      lvhtti.pt = Point(X, Y);
      if(SendMessage(ListView1->Handle, LVM_SUBITEMHITTEST, 0, reinterpret_cast<LPARAM>(&lvhtti)) != -1)
      {
         const int ligne = lvhtti.iItem;
         TListItem *pItem = ListView1->Items->Item[ligne];
         const int colonne = lvhtti.iSubItem;
         if (colonne == 1)
         {
         IndexR = ligne;
         pSelected = true;
         ListView1->Repaint();
         }
         else
         {
          pSelected = false;
         }
      }
    Voila, en espérant t'aider

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    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
    Heu ....pour les couleurs libre a toi d'adapter puisque la c'est vraimment d'une extrème laideur ...
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Points : 146
    Points
    146
    Par défaut
    Salut,

    Merci pour ton aide.
    J'ai réussi à faire ce que je voulais à partir de ton code.
    Je suis content !!

  5. #5
    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,

    Bien ! Mais pour être très honnête l'astuce du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LVHITTESTINFO lvhtti;
    et l'utilisation du SendMessage(...) m'avais été donné par un habitué du site il y a qq mois de ça mais je trouve plus son nom
    En tout cas, c'est bien pratique, j'ai bien fait de garder au chaud cette info et on peut le remercier...il se reconnaitera !

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

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

Discussions similaires

  1. [XL-2007] Sélectionner la zone de texte d'un shape type textbox à partir d'une macro
    Par ebeaul12 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2015, 08h18
  2. Sélectionner la zone d'une image map
    Par pausg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/09/2010, 10h12
  3. Réponses: 2
    Dernier message: 07/09/2007, 16h39
  4. Réponses: 6
    Dernier message: 24/01/2005, 11h06
  5. [VB.NET] BackColor d'un subitem d'une ListViewItem
    Par jennings dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/12/2004, 08h54

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