2010-03-30 7 views
0

J'ai un 'hint window leftovers' problem avec Virtual Treeview dans un complément Office, et maintenant je veux personnaliser la fenêtre de conseil pour résoudre le problème. Je veux utiliser TJvBallonHint à partir du package JVCL, qui est également utilisé dans d'autres parties de mon programme.Comment utiliser TJvBalloonWindow comme fenêtre de conseil pour l'arborescence virtuelle?

J'ai hérité de TVirtualStringTree et j'ai remplacé la méthode GetHintWindowClass comme le code suivant. La classe de fenêtre TJvBallonHint est appliquée, mais le texte de l'indicateur n'est pas dessiné. Des conseils pour moi? Je vous remercie!

function TMyStringTree.GetHintWindowClass: THintWindowClass; 
begin 
    Result :=TJvBalloonWindow;; 
end; 

Répondre

0

La classe personnalisée doit hériter de TVirtualTreeHintWindow qui TJvBalloonWindow est pas.

Il est pas formellement nécessaire car il doit être juste THintWindowClass mais regardez code de TVirtualTreeHintWindow - il utilise ne même pas Caption (c'est pourquoi la légende de votre indice est vide):

procedure TVirtualTreeHintWindow.CMTextChanged(var Message: TMessage); 
begin 
    // swallow this message to prevent the ancestor from resizing the window (we don't use the caption anyway) 
end; 

Je vous suggère créer une nouvelle classe de fenêtre d'indice en utilisant le code TJvBalloonWindow pour la peinture.