Bonjour,

J'utilise un Treeview avec le composant Virtual-TreeView dans Delphi 11.1 en VCL.
Je charge des données et je souhaiterai ensuite afficher en couleurs les lignes selon une condition.

Il y a une seule colonne pour laquelle le fond s'affiche correctement.
Quand je sélectionne la ligne toute les colonnes sont correctes.

Nom : tv1_color.png
Affichages : 274
Taille : 27,4 Ko

Voici le code correspondant :

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
procedure TForm1.Tree1DrawText(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
    Node: PVirtualNode; Column: TColumnIndex; const Text: string; const
    CellRect: TRect; var DefaultDraw: Boolean);
var
  mdata: PMyData;
begin
  mdata := Node.GetData;
  if Assigned(mdata) then
  begin
    if (mdata.Level = 2) then
      TargetCanvas.Font.Style := TargetCanvas.Font.Style + [fsBold]
    else if (mdata.Level > 2) and (mdata.Stock = 0) then
    begin
      TargetCanvas.Brush.Color := clYellow;
      TargetCanvas.Font.Color := clRed;
    end;
  end;
end;
Je n'ai pas trouvé ce qui ne convenait pas dans ce code.

Avez-vous une idée ?