Delphi 如何同时使用工具提示和提示模式?
在Windows中,如果列太窄而无法显示全文,则会以内联方式显示Delphi 如何同时使用工具提示和提示模式?,delphi,virtualtreeview,tvirtualstringtree,Delphi,Virtualtreeview,Tvirtualstringtree,在Windows中,如果列太窄而无法显示全文,则会以内联方式显示工具提示,并可以显示缺少的文本: 需要注意的是,提示窗口是内联的,显示文本(即,它不在节点的“下方”) 这相当于VirtualTreeview HintModehmToolTip: TVTHintMode = ( hmDefault, // show the hint of the control hmHint, // show node specific hi
工具提示
,并可以显示缺少的文本:
需要注意的是,提示窗口是内联的,显示文本(即,它不在节点的“下方”)
这相当于VirtualTreeview HintModehmToolTip
:
TVTHintMode = (
hmDefault, // show the hint of the control
hmHint, // show node specific hint string returned by the application
hmHintAndDefault, // same as hmHint but show the control's hint if no node is concerned
hmTooltip // show the text of the node if it isn't already fully shown
);
- hmTooltip:如果节点的文本尚未完全显示,则显示该文本
hmHint
:
- hmHint:显示应用程序返回的特定于节点的提示字符串
- 向您显示全文(如果被切断)(ala
)hmTooltip
- 以及允许我添加更多文本(ala
)hmHint
- 如果我将HintMode设置为
,则hmTooltip
永远不会触发(而且我从来没有机会添加自定义信息)OnGetHint
- 如果我将HintMode设置为
(或hmHint
),则会触发hmHintAndDefault
事件,但树将不再显示截断部分OnGetHint
- 如果HintMode为
,则所显示的提示将永不内联;但是,将始终位于单元格下方hmHint
- 但是我唯一能得到一个
事件的方法OnGetHint
- 通过将HintMode设置为
hmHint
- 但是如果HintMode是
hmHint
- 那么这个暗示就永远不会出现了
- 但是如果我将HintMode设置为
,使其就位hmTooltip
- 我永远不会得到
事件OnGetHint
goto 10
OnGetHint IsTreeTextClipped Hint
========= ================= ==================
Empty No No hint
Empty Yes Inline tooltip
Non-empty No Hint below; shows only GetHint text only
Non-empty Yes Hint below; show both TreeText+CRLF+GetHint text
问题是,如果调用了OnGetHint
,则永远不会有内联工具提示
- 您可以调用OnGetHint(
)hmHint
- 或者您可以有一个内联工具提示(
)hmTooltip
- 但是您永远不能调用OnGetHint,如果它不返回任何内容,请遵循
模式hmTooltip
hmTooltip
模式
当然,没有任何东西说必须要参与。这只是一个如何将提示文本获取到VirtualTrees进行处理的示例。我不了解-在第三张图片中,全文部分也没有内联。通过在OnGetHint?中手动添加全文,您肯定可以通过VT获得这一点。@UliGerhardt在问题的底部添加了澄清部分。是否立即清除?还添加了一个模型,用于对比同一treeview控件中的两个提示窗口行为,因此
OnGetHint
事件应该有一个额外的var HintMode
参数?:-)@乌利格哈特:那将是最理想的。或者理想情况下会有一个提示模式hmHintAndTooltip
。或者,理想情况下,当即将显示hmTooltip
时,树将只调用OnGetHint
,并在下面显示hmTooltip
,而不是内联显示。但这些都是好主意。我该怎么做呢?