Delphi VirtualStringTree OnGetHint
Delphi VirtualStringTree OnGetHint
我想在单元格文本已完全显示时显示提示。
所以,在表单的 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 属性
Hint
,例如'Hint for the whole VST' // 是的,添加无意义的提示
HintAnimation
,例如hatNone
HintMode
,例如hmHintAndDefault
// 如您所见,OnCreate
ShowHint
, True
// 如您所见,OnCreate
ParentShowHint
,根据需要,不知道就用False
// 是
要实施的 Vst 事件
OnDrawHint()
// 是
OnGetHint()
// 是
OnGetHintSize()
// 是
但没有任何改变。
OnGetHint、OnGetHintSize、OnDrawHint 根本不会触发。
(当 HintMode 设置为 hmToolTip 且文本未完全显示时,仅触发 OnGetHint)
是的,我阅读了该文档 VirtualTreeView.pdf
。
但是关于事件的所有描述都与您的报价完全相同。
我需要更多解释。
更新:
很奇怪的事情。
我已经测试了其他电脑。
我的电脑
Windows 10
xe3
vst 5.2.1
- 不工作
PC 1
Windows 10
xe3
vst 5.2.1
- 编译并执行 // 工作
- 在我的电脑上编译,复制并执行 // work
PC 2
Windows 10
- 在我的电脑上编译,复制并执行 // work
什么????
代码不是问题。
我不知道为什么,甚至不知道从哪里开始。
无论如何,我真的很感谢你的回答并接受它。
如果有人知道这个奇怪的事情,请告诉我。
如果我发现了,我会更新。
几个属性和事件处理程序必须在 place/implemented 中才能显示特定于节点的提示。以下内容应该可以帮助您入门:
应用程序属性
ShowHint := True
Vst 属性
Hint
,例如'Hint for the whole VST'
HintAnimation
,例如hatNone
HintMode
,例如hmHintAndDefault
ShowHint
, True
ParentShowHint
,根据需要,不知道就用False
要实施的 Vst 事件
OnDrawHint()
OnGetHint()
OnGetHintSize()
来自文档:
Use an event handler for OnDrawHint()
to draw the hint or tooltip
for the given node. You must implement this event and
OnGetHintSize()
to get a hint at all.
在网上查找 VirtualTreeView.pdf
文档
我想在单元格文本已完全显示时显示提示。
所以,在表单的 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 属性
Hint
,例如'Hint for the whole VST' // 是的,添加无意义的提示HintAnimation
,例如hatNone
HintMode
,例如hmHintAndDefault
// 如您所见,OnCreateShowHint
,True
// 如您所见,OnCreateParentShowHint
,根据需要,不知道就用False
// 是
要实施的 Vst 事件
OnDrawHint()
// 是OnGetHint()
// 是OnGetHintSize()
// 是
但没有任何改变。
OnGetHint、OnGetHintSize、OnDrawHint 根本不会触发。
(当 HintMode 设置为 hmToolTip 且文本未完全显示时,仅触发 OnGetHint)
是的,我阅读了该文档 VirtualTreeView.pdf
。
但是关于事件的所有描述都与您的报价完全相同。
我需要更多解释。
更新:
很奇怪的事情。
我已经测试了其他电脑。
我的电脑
Windows 10
xe3
vst 5.2.1
- 不工作
PC 1
Windows 10
xe3
vst 5.2.1
- 编译并执行 // 工作
- 在我的电脑上编译,复制并执行 // work
PC 2
Windows 10
- 在我的电脑上编译,复制并执行 // work
什么????
代码不是问题。
我不知道为什么,甚至不知道从哪里开始。
无论如何,我真的很感谢你的回答并接受它。
如果有人知道这个奇怪的事情,请告诉我。
如果我发现了,我会更新。
几个属性和事件处理程序必须在 place/implemented 中才能显示特定于节点的提示。以下内容应该可以帮助您入门:
应用程序属性
ShowHint := True
Vst 属性
Hint
,例如'Hint for the whole VST'HintAnimation
,例如hatNone
HintMode
,例如hmHintAndDefault
ShowHint
,True
ParentShowHint
,根据需要,不知道就用False
要实施的 Vst 事件
OnDrawHint()
OnGetHint()
OnGetHintSize()
来自文档:
Use an event handler for
OnDrawHint()
to draw the hint or tooltip for the given node. You must implement this event andOnGetHintSize()
to get a hint at all.
在网上查找 VirtualTreeView.pdf
文档