Delphi - TreeView で特定Nodeの文字色を変更
TreeView の CustomDrawItem を用いて
- procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
- begin
- if (Node.Text = 'TargetNode') then begin
- Sender.Canvas.Font.Color := clRed;
- end;
- end;
カスタムスタイルを使用している場合、背景が白抜け(スタイル未適用で塗りつぶされてしまうため)
Vcl.Themes を uses して、TreeView(scTreeView)の色を取得してブラシへ割り当ててやる
- uses Vcl.Themes;
- procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
- begin
- if (Node.Text = 'TargetNode') then begin
- Sender.Canvas.Brush.Color := TStyleManager.ActiveStyle.GetStyleColor(TStyleColor.scTreeView);
- Sender.Canvas.Font.Color := clRed;
- end;
- end;
コメント