2010-03-30 4 views
0

У меня есть 'hint window leftovers' problem с Virtual Treeview в надстройке Office, и теперь я хочу настроить окно подсказки для решения проблемы. Я хочу использовать TJvBallonHint из пакета JVCL, который также используется в других частях моей программы.Как использовать TJvBalloonWindow в качестве окна подсказки для Virtual treeview?

Я унаследовал TVirtualStringTree и переопределил метод GetHintWindowClass, например, следующий код. Класс окна TJvBallonHint применяется, но текст подсказки не нарисован. Какие-нибудь советы для меня? Спасибо!

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

ответ

0

Пользовательский класс должен наследовать от TVirtualTreeHintWindow который TJvBalloonWindow не является.

Это формально не требуется, так как она должна быть просто THintWindowClass но смотреть на код TVirtualTreeHintWindow - это даже не использует Caption (вот почему заголовок вашего HiNT является пустым):

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; 

Я предлагаю вам создайте новый класс окна подсказки, используя код от TJvBalloonWindow для рисования.