Listo, no era nada del canvas ni eso... un simple error por el cansancio de ayer
Código Delphi
[-]procedure TForm1.trvDptosCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
rc: TRect;
begin
DefaultDraw := False;
with trvDptos do
begin
Canvas.Brush.Style := bsClear;
Canvas.Font.Color := clBlue;
Canvas.Font.Name := 'Tahoma';
Canvas.Font.Size := 10;
rc := Node.DisplayRect(False);
Canvas.TextOut(rc.Left, rc.Top, Copy(Node.Text, 1, Pos('(', Node.Text)));
Canvas.Refresh;
Canvas.Font.Color := clRed;
Canvas.Font.Name := 'Tahoma';
Canvas.Font.Size := 10;
Canvas.TextOut(rc.Left + Canvas.TextWidth(Copy(Node.Text, 1, Pos('(', Node.Text))), rc.Top, EntreValores(Node.Text, '(', ')'));
Canvas.Refresh;
Canvas.Font.Color := clBlue;
Canvas.Font.Name := 'Tahoma';
Canvas.Font.Size := 10;
Canvas.TextOut(rc.Left + Canvas.TextWidth(Node.Text) - 1, rc.Top, Copy(Node.Text, Pos(EntreValores(Node.Text, '(', ')'), Node.Text) + Length(EntreValores(Node.Text, '(', ')')), Pos(')', Node.Text)));
end;
end;
si te fijas cambian las formulas que calculan los valores del texto
IMAGEN