Como melhor renderizar um ícone de sobreposição sobre o ícone básico do nó Delphi TVirtualTreeView

Estou convertendo uma visualização em árvore do TTreeView padrão para usar TVirtualStringTree. Meu desafio final é implementar um recurso em que preciso desenhar um indicador de status de 'aprovação / reprovação' em cima do ícone do nó conhecido. Com o TTreeView, usei:

  var
   R : TRect;
  begin
    R := Node.DisplayRect( True );
    StatusIconList.Draw( TreeView1.Canvas,
                         R.Left - StatusIconList.Width - 14,
                         R.Top,
                         3 {MyOverlayImageIndex} );

O resultado é a cruz vermelha sobre o ícone básico, como mostrado abaixo:

om TVirtualStringTree, esperava encontrar uma maneira melhor ou obter posições mais conhecidas para a posição do ícone de sobreposição necessária. Estou fazendo

   procedure DrawFailed;
    var
     R : TRect;
    begin
      R := CellRect;
      StatusIconList.Draw( TargetCanvas,
                           R.Left - StatusIconList.Width + 49 + Sender.GetNodeLevel( Node ) * 16,
                           R.Top,
                           siiFailed );
    end;

Esta é a melhor solução? Existe uma maneira melhor de obter o canto superior / esquerdo do ícone básico sem a horrível chamada no nível do nó?

questionAnswers(1)

yourAnswerToTheQuestion