Delphi VirtualStringTree OnGetHint

时间:2017-12-18 09:03:33

标签: delphi virtualtreeview tvirtualstringtree

我希望在完整显示单元格文本时显示提示 所以,在表格上的OnCreate

procedure TForm1.FormCreate(Sender: TObject);
begin
  VirtualStringTree1.HintMode := hmHint;
  VirtualStringTree1.ShowHint := True;
end;

和OnGetHint

procedure TForm1.VirtualStringTree1GetHint(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex;
  var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: string);
begin
  HintText := IntToStr(Node.Index);
end;

但没有任何反应。

OnGetHint事件处理程序未被触发,甚至TBaseVirtualTree.CMHintShow断点也无效。

我该怎么做?

我正在使用delphi xe3,virtualtreeview 5.2.1。

感谢您的回答。

我跟着你的导游。

应用程序属性

  • ShowHint := True //我已检查但在OnCreate上设置为true

Vst propertyiess

  • Hint,例如'提示整个VST'//是的,添加无意义的提示
  • HintAnimation,例如hatNone
  • HintMode,例如hmHintAndDefault //如您所见,OnCreate
  • ShowHintTrue //如您所见,OnCreate
  • ParentShowHint,根据需要,如果您不知道是,请使用False

要实施的Vst事件

  • OnDrawHint() //是
  • OnGetHint() //是
  • OnGetHintSize() //是

但没有改变 OnGetHint,OnGetHintSize,OnDrawHint根本不被触发。
(当HintMode设置为hmToolTip且文本未完全显示时,仅触发OnGetHint)

是的,我读了那份文件VirtualTreeView.pdf 但关于事件的所有描述都与你的引用完全相同 我需要更多解释。

更新

非常奇怪。
我测试了其他这些PC。

我的电脑 Windows 10 xe3 vst 5.2.1

  • 不工作

PC 1 Windows 10 xe3 vst 5.2.1

  • 编译并执行// work
  • 在我的电脑上编译,复制并执行// work

PC 2 Windows 10

  • 在我的电脑上编译,复制并执行// work

什么????
代码不是问题 我不知道为什么,甚至从哪里开始。

无论如何,我真的感谢回答并接受它 如果有人知道这个奇怪的事情,请告诉我 如果我发现,我会更新。

1 个答案:

答案 0 :(得分:3)

必须为节点特定提示显示/实现多个属性和事件处理程序。以下内容可以帮助您入门:

应用程序属性

  • ShowHint := True

Vst属性

  • Hint,例如'提示整个VST'
  • HintAnimation,例如hatNone
  • HintMode,例如hmHintAndDefault
  • ShowHintTrue
  • ParentShowHint,根据需要,如果您不知道,请使用False

要实施的Vst事件

  • OnDrawHint()
  • OnGetHint()
  • OnGetHintSize()

来自文档:

  

使用OnDrawHint()的事件处理程序绘制提示或工具提示   对于给定的节点。你必须实现这个事件   OnGetHintSize()得到一个暗示。

在网上查找VirtualTreeView.pdf文档