Hallo,
also hiermit gehts:
Delphi-Quellcode:
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
NodeRect: TRect;
begin
NodeRect := Node.DisplayRect(False);
if cdsSelected in State then
Sender.Canvas.Brush.Color := clLime
else
Sender.Canvas.Brush.Color := TTreeView(Sender).Color;
Sender.Canvas.FillRect(NodeRect);
DefaultDraw := True;
end;
Das einzige Problem: Sobald man auf das
Handle des Canvas zugreift (z. B. über FillRect) wird die Schrift verstellt
, aber nur bei nicht markierten Nodes. Keine Ahnung warum oder wie man das verhindert. Siehe dazu das Bild.
Gruß
xaromz