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 Focus in VirtualTreeView immer anzeigen (https://www.delphipraxis.net/167625-focus-virtualtreeview-immer-anzeigen.html)

ralfiii 10. Apr 2012 09:53

Focus in VirtualTreeView immer anzeigen
 
Hallo!

Ich möchte, dass die blaue Markierung des fokussierten Elements immer gezeichnet wird - also auch wenn das VST den Fokus gar nicht hat.
Bei einem Edit würde ich das über Edit.HideSelection:=False erledigen.
Nur: Das VST hat diese Eigenschaft nicht. Es gibt zwar in TreeOptions.PaintOptions den Wert toHideSelection, aber der ist schon standardmässig false und bewirkt diesbezüglich garnix.

Zum probieren, einfach das hier auf ein Formular werfen, App starten, Node auswählen auf ein anderes Fenster klicken - die Auswahl wird grau:
Delphi-Quellcode:
object VirtualStringTree2: TVirtualStringTree
  Left = 120
  Top = 176
  Width = 200
  Height = 100
  RootNodeCount = 2
  Columns = <>
end
Hilfe!
Danke!
Ralf

himitsu 10. Apr 2012 10:03

AW: Focus in VirtualTreeView immer anzeigen
 
Zitat:

Zitat von ralfiii (Beitrag 1160910)
die Auswahl wird grau

Sie verschwindet also doch nicht? :angle:

andere Farbe <> verstecken/ausblenden

ralfiii 10. Apr 2012 10:04

AW: Focus in VirtualTreeView immer anzeigen
 
Oh!
Hab grad entdeckt, dass es ja die Eigenschaft
VST.Colors.UnfocusedSelectionColor gibt.

Da muss man dann nur mehr in OnPaintText sicherstellen, dass der Text richtig eingefärbt wird:

Delphi-Quellcode:
  if VirtualStringTree2.Selected[Node] then
     TargetCanvas.Font.Color:=clWhite;
Sorry, hat sich also erledigt.

Stevie 10. Apr 2012 10:17

AW: Focus in VirtualTreeView immer anzeigen
 
Zitat:

Zitat von ralfiii (Beitrag 1160915)
Oh!
Hab grad entdeckt, dass es ja die Eigenschaft
VST.Colors.UnfocusedSelectionColor gibt.

Da muss man dann nur mehr in OnPaintText sicherstellen, dass der Text richtig eingefärbt wird:

Delphi-Quellcode:
  if VirtualStringTree2.Selected[Node] then
     TargetCanvas.Font.Color:=clWhite;
Sorry, hat sich also erledigt.

Ich würde dort dann doch lieber auf VirtualStringTree2.Colors.SelectionTextColor oder clHighlightText setzen, anstatt einen absolut Wert zu benutzen. Das gibt sonst immer Probleme bei denen, die sich ihr Windows Theme anpassen.

Gollum 10. Apr 2012 10:30

AW: Focus in VirtualTreeView immer anzeigen
 
Hallo,

setzte in TreeOptions.PaintOptions die Eigenschaft toPopupMode auf True.

ralfiii 10. Apr 2012 10:33

AW: Focus in VirtualTreeView immer anzeigen
 
Zitat:

Zitat von Gollum (Beitrag 1160927)
setzte in TreeOptions.PaintOptions die Eigenschaft toPopupMode auf True.

Pfff, das Ding kann scheinbar echt alles.
Danke!


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