我試圖在組件的運行時臨時更改提示文本, 而不更改Hint
屬性本身。在delphi上攔截提示事件
我試過捕捉CM_SHOWHINT
,但是這個事件似乎只能到 的形式,而不是組件本身。
插入CustomHint也不會有效,因爲它需要Hint
屬性中的文本 。
我的組件是從TCustomPanel
後裔這裏就是我想要做的事:
procedure TImageBtn.WndProc(var Message: TMessage);
begin
if (Message.Msg = CM_HINTSHOW) then
PHintInfo(Message.LParam)^.HintStr := 'CustomHint';
end;
我發現這段代碼在互聯網上的某個地方,遺憾的是它不壽工作。
是的!這正是我所需要的,非常感謝! – ertx
您也可以使用「TApplication.OnShowHint」事件完成相同的事情。 –
@Remy優點和缺點。如果你正在編寫一個組件,那麼這個消息是最好的。如果您想應用應用程序範圍策略,則OnShowHint會獲勝。 –