![]() |
Spezielles "Hint"(Window) für nur ein bestimmtes C
Hi,
ich habe gerade das Problem, das ich bei einem Treeview(und nur bei diesen), ein spezieles Hint einblenden möchte(mehrere Zeilen und 2 Images). Erst habe gedacht ich schreib mir eine eigene Klasse die ich von THintWindow ableite. ^^ Gehe ich so vor dann habe ich diese Art von Hint überall in der App oder gar nicht. Dann habe ich den Hint durch eine Form simuliert, dabei stosse ich aber auf das Problem das der Hint aber schon nach ein paar Millisekunden bei OnMouseMove angezeigt wird. Ich hätte es gerne so wie es normal ist nach ca. 1 sek. dann erst einblenden. Hat jemand eine Idee oder einen Ansatz wie ich zu meinem Ziel kommen könnte ? Greetz DataCool |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Hallo DataCool,
ich hatte da mal was bei den Schweizern gefunden. Der Autor ist Horst Kniebusch. ![]() |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Hi Jürgen,
danke für den Hinweis, aber die Klasse THintWindow zu überschreiben/abzuleiten hatte ich oben ja schon als Möglichkeit beschrieben! Bei der Lösung ist das Problem das iich dieses spezielle HintWindow dann bei jeder Komponente habe und nicht nu beim dem Treeview wo ich es haben möchte. Greetz DataCool |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
nun du könntest im OnMouseMove oder so einen Timer mit einer Sekunde wartezeit auslösen und den im Timer-Event wieder deaktivieren und dein Hint-Form anzeigen.
|
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Hi,
der Ansatz hat was ;-) Hatte gerade aus eigener Idee folgendes probiert :
Delphi-Quellcode:
^^ Funktioniert wunderbar, nur bewegt man die Maus über einen node und bewegt die MMaus dann nicht mehr wird kein Hint eingeblendet.
// TreeView XYZ OnMouseMove
Var Node : TTreeNode; begin Node := tv_XYZ.GetNodeAt(x,y); if Node.Index <> iLastTvIdx then begin dtLastTvMousMove := now; iLastTvIdx := node.Index; HideHintWindow; exit; end else begin if (dtLastTvMousMove + (650/24/60/60/1000)) >= now then exit; end; ShowHintWindow; Werde wohl Deinen Vorschlag mit dem Timer realisieren. Obwohl ich Timer Lösungen immer unschön finde, aber hier gehts wohl nicht anderes. Danke und Greetz DataCool |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Hi,
mit der Timer-lösung kommt man zum gewünschtem Ergebnis ! Greetz DataCool |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Zitat:
In einer OnHint-Behandlung könntest du über einen speziellen Short- oder LongHint deines TreeViews eben diesen als "Hint aufrufend" identifizieren und entsprechend reagieren. |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Hi,
das könnte ich zwar machen, aber dann habe ich das selbe Problem wie beim OnMouseMove mit Zeitberechnung, ich möhte ja einen unterschiedlihen Hint abhängig vom aktuellem TreeItem. Bis jetzt ist die Timer Variante wirklich die beste Lösung. Greetz DataCool |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Und wie wäre es, wenn du entsprechend über OnMouseOver und OnMouseLeave (oder so) deinen Hint nur initialisierts, wenn die Maus über der TreeView ist und beim Verlassen dann wieder den "Originalen".
Also einfach nur HintWindowClass entsprechende der aktiven Controls setzt. Die Verwaltung und speziell die Zeiten sollten dann ja auch wieder passen :angel: |
Re: Spezielles "Hint"(Window) für nur ein bestimmt
Zitat:
Okay, aber das ist natürlich auch eine neue Aussage. Bisher ging es nur um den Hint des Treeviews, der unterschiedlich zu den Hints der anderen Komponenten dargestellt werden sollte. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz