Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualTreeView - Hint auf Column-Header überlappend (wie hmTooltop) (https://www.delphipraxis.net/188170-virtualtreeview-hint-auf-column-header-ueberlappend-wie-hmtooltop.html)

ralfiii 5. Feb 2016 15:51

VirtualTreeView - Hint auf Column-Header überlappend (wie hmTooltop)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo!

Wenn man ein VirtualStringTree verwendet, um Tabellen darzustellen, dann kann man HintMode auf hmToolTip stellen.
Es wird dann, sobald ein Zelleninhalt zu lang ist, wenn man mit der Maus drüberfährt ein Hint-Fenster genau über der Zelle angezeigt.

Gibt's eine Möglichkeit ein ähnliches Verhalten bei den Spalten-Headern zu erreichen?
(Da kommt der Hint ja immer, also unabhängig davon, ob man den Headertext eh sieht, und an einer "falschen" Stelle.

Danke!
R.

Aviator 6. Feb 2016 12:24

AW: VirtualTreeView - Hint auf Column-Header überlappend (wie hmTooltop)
 
So wie ich es sehe, wenn ich in den SourceCode des VST reinschaue, kann man den Hint der beim Header angezeigt wird gar nicht beeinflussen. Hier werden einem keine Events zur Verfügung gestellt. Du könntest höchstens selbst mit Canvas.TextWidth die Breite des Textes ermitteln und die mit der Breite der Column vergleichen. Ist der Text schmäler als die Column, dann einfach den HintText aus der Column herauslöschen. Das alles könntest du evtl. im OnColumnResize Event prüfen und entsprechend setzen. Das wäre ein Workaround mit dem man vielleicht leben könnte, wenn das zwingend erforderlich ist. Ich habe es selbst nicht ausprobiert, kann also auch nicht sagen wie die Geschwindigkeit darunter leidet wenn man eine Column in ihrer Größe verändert. Das Resize Event wird da ja sehr häufig aufgerufen sprich bei jeder Änderung die auch nur 1px beträgt.

ralfiii 8. Feb 2016 08:42

AW: VirtualTreeView - Hint auf Column-Header überlappend (wie hmTooltop)
 
Das könnt schon gut passen, aber dann müsste man noch das Problem lösen, dass der Hint an der falschen Stelle angezeigt wird.
Schön wäre's wenn der Hint direkt ÜBER dem Header-Feld angezeigt wird, so wie das bei den Cell-Hints ist.

Aviator 8. Feb 2016 19:25

AW: VirtualTreeView - Hint auf Column-Header überlappend (wie hmTooltop)
 
Zitat:

Zitat von ralfiii (Beitrag 1329739)
Das könnt schon gut passen, aber dann müsste man noch das Problem lösen, dass der Hint an der falschen Stelle angezeigt wird.
Schön wäre's wenn der Hint direkt ÜBER dem Header-Feld angezeigt wird, so wie das bei den Cell-Hints ist.

Das wirst du vermutlich nur hinbekommen wenn du dir eine Ableitung der TVirtualBaseTree Komponente erstellt und dort das "Paint-Event" des Hints überschreibst. Eine Einstellung gibt es hierfür meines wissens nach nicht. Habe auch nichts dergleichen im SourceCode gesehen wo man sich reinhängen könnte. Weder ein Event, noch eine Einstellung.

ralfiii 11. Feb 2016 11:35

AW: VirtualTreeView - Hint auf Column-Header überlappend (wie hmTooltop)
 
Schade.
Die Lösung bei den Cell-Hints ist viel schöner, weil man den Hint kriegt, sobald man mit der Maus über eine Zelle fährt, die zu klein ist um den ganzen Text darzustellen.
Da muss man keine 2 Sekunden warten bis der Hint kommt.
Naja, ich werd mal ist's VT-Forum einen Wunsch an's Christkind deponieren...

Danke jedenfalls!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 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