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