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
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
Bonsoir,
J'avais bricolé - pour un test - qq lignes de code que voici :
C'est donc le code de l'évènement OnAdvancedCustomDrawItem du TreeView en question.
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); } } }
Il etait rempli tres bêtement comme ceci pour le test:
En espérant t'aider...
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); }
@ +![]()
Merci
Je vais etudier ca, comme je ne maitrise pas les ttreeview j'en ai pour un petit moment
bob
Partager