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;
コメント