Q:

TTreeNode blinking. How do I make that?

I like to have a blinking node. How can I make that?

A:

The below is by no means a complete solution, but a simple example of David's answer:
type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Timer1: TTimer;
    Button1: TButton;
    Button2: TButton;
    procedure TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
      State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    FHighTime: Boolean;
    FHighNode: TTreeNode;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
  R: TRect;
begin
  if Assigned(FHighNode) then begin
    FHighTime := not FHighTime;
    FHighNode.MakeVisible;
    R := FHighNode.DisplayRect(True);
    InvalidateRect(TreeView1.Handle, @R, True);
  end else begin
    if FHighTime then
      TreeView1.Invalidate;
    FHighTime := False;
    Timer1.Enabled := False;
  end;
end;

procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
const
  Colors: array [Boolean] of TColor = (clWindowText, clWindow);
  HiColors: array [Boolean] of TColor = (clHighlightText, clHighlight);
begin
  if Node = FHighNode then begin
    if cdsSelected in State then
      TreeView1.Canvas.Font.Color := HiColors[FHighTime]
    else
      TreeView1.Canvas.Font.Color := Colors[FHighTime];
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // test
  FHighNode := TreeView1.Items[2];
  Timer1.Enabled := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  FHighNode := nil;
end;

You might like to change the design so that setting a highlight node is like calling a setter, etc.. But anyway, you get the idea..

