Langsam verstehe ich dich besser. Die Färbung ist nicht von der Selektion des Knoten abhängig. Du verwendest die Selektion nur um den Knoten zu markieren, der über den Button gefärbt werden soll. Dazu solltest du wie von Sharky beschrieben die Data property des Node verwenden. Sharky hat doch auch Code beigelegt - hast du den schon ausprobiert?
marabu
PS: Ansonsten geht es auch mit meinem Code - leicht verändert:
Delphi-Quellcode:
procedure TDemoForm.TreeViewCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Succ(Node.AbsoluteIndex) = TreeView.Tag
then Sender.Canvas.Font.Color := clGreen
else Sender.Canvas.Font.Color := clBlack;
end;
procedure TDemoForm.HighLightButtonClick(Sender: TObject);
begin
with TreeView do
begin
Tag := Succ(Selected.AbsoluteIndex);
Invalidate;
end;
end;