Ja, es wäre für alle Elemente gültig, aber wenn du dieses nur angegeben hast, wärend auch nur ein Hint der TreeView angezeigt werden könnte und ansonsten der normale Hint eingetragen ist, dann wird dieser doch auch nur von der TreeView verwendet.
Im OnMouseMove das Item unter der Maus rausfinden und dann dementsprechend den Hint der TreeView setzen?
und dann wäre es wohl am Einfachsten noch das OnMouseLeave nachzurüsten (sonst müstest du ja in allen anderen Objecten auf der Form ebenfalls das OnMouseMove abarbeiten, um das verlassen der TreeView zu erkennen).
also die CM_MOUSELEAVE-WindowsMessage abfangen und dort wieder den "Default"-HintWindow wieder setzen.
z.B.:
Code:
[b]private[/b]
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
[b]procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;[/b]
Aber wie gesagt, mit der VirtualTreeView wird der Item-abhängige Hint einfacher zu realsieren sein.
Im OnMouseEnter da deinen Hint installieren (HintWindowClass:=TYourHintWindow; ) und in OnMouseLeave wieder den StandardHint (HintWindowClass:=THintWindow; ).
Dort könntest du aber auch deine HintClass erst installieren, wenn er wirklich gebraucht wird, also in OnGetHint deine HintKlasse zuweisen und zugleich den Item-abhängigen HintText setzen und in OnMouseLeave (selbst nachgerüstet) auf die DefaultHintClass wieder zurücksetzen.