Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.260 Beiträge
 
Delphi 12 Athens
 
#5

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 5. Feb 2007, 06:08
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat