Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ShowHint neu aufrufen (https://www.delphipraxis.net/166686-showhint-neu-aufrufen.html)

Popov 24. Feb 2012 18:35

ShowHint neu aufrufen
 
Gibt es eine Möglichkeit ShowHint innerhalb der gleichen Komponente neu zu aktivieren, wenn sich z. B. die Information geändert hat?

In meinem Fall will ich Itemtexte einer ListBox, die die nicht komplett angezeigt werden können, über ShowHint anzeigen. Ich würde ShowHint also gerne an die Items und nicht ListBox koppeln.

himitsu 24. Feb 2012 19:35

AW: ShowHint neu aufrufen
 
Schau dir mal das Delphi-Referenz durchsuchenApplication-Objekt an ... da gibt es so einige Methoden, mit "Hint" im Namen.

Popov 24. Feb 2012 20:38

AW: ShowHint neu aufrufen
 
Das es unter TApplication einige Hint Methoden gibt, weiß ich, nur die eine bestimmte die ich suche nicht.

Allerdings habe ich jetzt etwas getricks und habe was ich will.

himitsu 24. Feb 2012 21:09

AW: ShowHint neu aufrufen
 
ShowHint klingt doch danach, als könne man damit was einblenden?

OK, CancelHint und gleich danach ActivateHint klingt noch besser.

Popov 24. Feb 2012 21:33

AW: ShowHint neu aufrufen
 
Zitat:

Zitat von himitsu (Beitrag 1152756)
ShowHint klingt doch danach, als könne man damit was einblenden?

Mag sein, dass Show nach einblenden klingt, ist aber nur ein Boolean-Wert ob Hint angezeigt werden soll. Mehr nicht.

Zitat:

OK, CancelHint und gleich danach ActivateHint klingt noch besser.
Klingen tut es, reicht aber nicht, denn je nachdem wird entweder nichts angezeigt oder nur gelegentlich etwas angezeigt.

Wie gesagt, etwas triksen, dann geht es. Und zwar nicht brutal CancelHint und gleich danach ActivateHint aufrufen, da die nächste Mausbewegung wieder CancelHint aufruft, und dann sieht man nichts, sondern nur dann aufrufen wenn sich etwas ändert. Also Hint auf Änderung im Text überwachen und erst dann CancelHint und ActivateHint aufrufen. Also nur ein mal pro Item.

Perlsau 25. Feb 2012 09:10

AW: ShowHint neu aufrufen
 
Zitat:

Zitat von Popov (Beitrag 1152728)
In meinem Fall will ich Itemtexte einer ListBox, die die nicht komplett angezeigt werden können, über ShowHint anzeigen.

Einfach in das Hint-Property den entsprechenden String reinschreiben, und zwar im OnChange- oder MouseMove-Ereignis deiner ListBox. Der Hint wir dann angezeigt, wenn der Eintrag selektiert ist und die Maus sich darüber befindet, oder, im zweiten Fall mit MouseMove, errechnest du die Zeile, auf der sich die Maus befindet, und weist den jeweiligen String an Hint zu.

himitsu 25. Feb 2012 10:01

AW: ShowHint neu aufrufen
 
Die blose Zuweisung des Hints löst kein Ereignis für einen Refresh aus. (es wird nur
Delphi-Quellcode:
FHint: string
geändert)
Auch das Anzeigen des Hint wird standardmäßg nicht zeilenweise ausgewertet. Bewegt man die Maus nur innerhalb des Controls wird der Hint nicht mehr neu angezeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz