2017-12-18 119 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對文件

相關問題