2017-12-18 94 views
3

我想在单元格文字已完全显示时显示提示。
所以,在窗体的OnCreateDelphi VirtualStringTree OnGetHint

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 //我查了一下,但设置为true的OnCreate明确

Vst的propertiess

  • Hint,例如'提示整个VST'//是,加上无意义的提示
  • HintAnimation,例如, hatNone
  • HintMode,例如, hmHintAndDefault //你看,就在OnCreate
  • ShowHintTrue //你看,就在OnCreate
  • ParentShowHint,根据需要,使用False如果你不知道//是

Vst的事件实施

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

但没有任何变化。
OnGetHint,OnGetHintSize,OnDrawHint根本没有被触发。
(当HintMode设置为hmToolTip和文字没有完全显示,OnGetHint仅触发)

是的,我读的文档VirtualTreeView.pdf
但是关于Event的所有描述与您的报价完全相同。
我需要更多的解释。


更新:

非常奇怪的事情。
我测试过这个其他的电脑。

我的电脑 Windows 10 xe3 vst 5.2.1

  • 不行

PC 1 Windows 10 xe3 vst 5.2.1

  • 编译和执行工作//
  • 编译我的电脑上,复制并执行//工作

PC 2 Windows 10

  • 编译我的电脑上,复制并执行//工作

什么?
代码不是问题。
我不知道为什么,甚至从哪里开始。无论如何,我真的很感谢答案并接受它。
如果有人知道这个奇怪的事情,请让我知道。
如果我发现,我会更新。

+0

您不必Application.ShowHint设置为FALSE的任何地方,你呢? – Dsm

+0

@Dsm Application.ShowHint是TRUE,我查了一下。此外,当HintMode:= hmToolTip和文本未完全显示时,它会正常工作并触发OnGetHint – Outdoor

回答

3

为了显示节点特定的提示,必须安装/实现几个属性和事件处理程序。下面应该让你开始:

应用性能

  • ShowHint := True

Vst的性能

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

Vst的事件来实现

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

从文档:

使用的事件处理程序OnDrawHint()绘制提示或提示 对于给定的节点。您必须实施此事件并根据 OnGetHintSize()获得提示。

看看在网络上的VirtualTreeView.pdf对文件

相关问题