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 :

TTreeview et color des items


Sujet :

C++Builder

Vue hybride

bob8181_2000 TTreeview et color des items 20/09/2005, 22h46
Sunchaser Bonsoir, J'avais bricolé -... 20/09/2005, 22h57
bob8181_2000 Merci Je vais etudier ca,... 20/09/2005, 23h01
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 22
    Par défaut TTreeview et color des items
    bonjour.

    Est il possible d'affecter une couleur particuliere au texte de chaque TreeNode ? Il existe bien une propriete color, mais elle est affectée au TTreeview, donc commune à tous les treenode.

    Merci

    Bob

  2. #2
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Bonsoir,

    J'avais bricolé - pour un test - qq lignes de code que voici :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    void __fastcall TForm2::TreeView1AdvancedCustomDrawItem(
          TCustomTreeView *Sender, TTreeNode *Node, TCustomDrawState State,
          TCustomDrawStage Stage, bool &PaintImages, bool &DefaultDraw)
    {
    TCanvas *pC = Form2->TreeView1->Canvas;
    TRect ARect = Node->DisplayRect(true);
    if (Node->Text == "A" || (!Node->Parent == NULL && Node->Parent->Text == "A"))
    {
            pC->FillRect(ARect);
            if (State.Contains(cdsSelected))
            {
                            pC->Brush->Color = clYellow;
                            pC->Font->Color = clBlack;
                            pC->DrawFocusRect(ARect);
                            if (Node->Index%2)
                            {
                            Node->StateIndex = 1;
                            }
                            else
                            {
                            Node->StateIndex = 2;
                            }
            }
            else
            {
            if (State.Contains(cdsIndeterminate	))
            {
            Node->StateIndex = 0;
            }
            if (Node->Index%2)
            {
                    pC->Brush->Color = clRed;
                    pC->Font->Color = clBlue;
            }
            else
            {
                    if (Node->HasChildren == true)
                    {
                            pC->Brush->Color = clRed;
                            pC->Font->Color = clBlue;
                    }
                    else
                    {
                            pC->Brush->Color = clGreen;
                            pC->Font->Color = clBlack;
                    }
            }
            }
            pC->TextOutA(ARect.Left + 2, ARect.Top + 2, Node->Text);
    }
    else
    {
    if (Node->Text == "B" || (!Node->Parent == NULL && Node->Parent->Text == "B"))
    {
     
    pC->Brush->Color = clBlue;
    pC->FillRect(ARect);
    pC->Font->Color = clBlack;
    pC->TextOutA(ARect.Left + 5, ARect.Top + 5, Node->Text);
    }
    }
    }
    C'est donc le code de l'évènement OnAdvancedCustomDrawItem du TreeView en question.
    Il etait rempli tres bêtement comme ceci pour le test:

    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
     
    int i; TTreeNode *pN1; TTreeNode *pN2;
    Form2->TreeView1->Items->Add(NULL, "A");
    Form2->TreeView1->Items->Add(NULL, "B");
    pN1 = Form2->TreeView1->Items->Item[0];
    pN2 = Form2->TreeView1->Items->Item[1];
    for (i = 1; i < 6; i ++)
    {
    Form2->TreeView1->Items->AddChild(pN1, i);
    }
     
    for (i = 1; i < 6; i ++)
    {
    Form2->TreeView1->Items->AddChild(pN2, i);
    }
    En espérant t'aider...

    @ +

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 22
    Par défaut
    Merci
    Je vais etudier ca, comme je ne maitrise pas les ttreeview j'en ai pour un petit moment

    bob

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

Discussions similaires

  1. colorer des boites de dialogue à la validation
    Par shout dans le forum Windows
    Réponses: 20
    Dernier message: 04/08/2004, 11h23
  2. activer ou désactiver des items d'un menu
    Par Invité dans le forum Composants
    Réponses: 3
    Dernier message: 08/06/2004, 14h07
  3. [VB.NET] Choisir les valeurs des items d'un combo box?
    Par Eithelgul dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2004, 10h13
  4. [MFC] CListCtrl: colonnes fixes + tri des items
    Par bigboomshakala dans le forum MFC
    Réponses: 5
    Dernier message: 10/05/2004, 22h54
  5. Comment effacer des Items d'un TListView ?
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/11/2002, 10h19

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