Как использовать TJvBalloonWindow в качестве окна подсказки для виртуального дерева?

У меня проблема с остатками окна подсказки с Virtual Treeview в надстройке Office, и теперь я хочу настроить окно подсказки для решения проблемы. Я хочу использовать TJvBallonHint из пакета JVCL, который также используется в других частях моей программы.

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

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

person Edwin Yip    schedule 30.03.2010    source источник


Ответы (1)


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

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

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 для рисования.

person Community    schedule 30.03.2010