Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi VirtualStringTree (VirtualTreeView) und FocusedNode (https://www.delphipraxis.net/189638-virtualstringtree-virtualtreeview-und-focusednode.html)

Mattze 4. Jul 2016 12:44

VirtualStringTree (VirtualTreeView) und FocusedNode
 
Hallo,

der VirtualStringTree ändert bei mir (Nur bei mir?) schon die FocusedNode beim Mousedown.
Soll er aber nicht. Wie beim Windows Explorer soll er das erst beim MouseUp.

Geht das irgendwie zu machen?

(Unangenehmes Beispiel: Ich möchte eine nicht focusierte Node draggen. Breche aber den Dragvorgang mit ESC ab. Beim Explorer passiert nix. Beim VirtualStringTree hat die zum Drag selektierte Node schon den Focus, was dann über FocusChanged verschiedene unbeabsichtigte Dinge auslöst.)

Gruß
Mattze

Aviator 4. Jul 2016 15:04

AW: VirtualStringTree (VirtualTreeView) und FocusedNode
 
Es gibt ein Event
Delphi-Quellcode:
OnFocusChanging
. Da kannst du den Allowed Parameter auf False setzen wenn du nicht willst, dass die Node gewechselt werden kann.

Mattze 4. Jul 2016 15:51

AW: VirtualStringTree (VirtualTreeView) und FocusedNode
 
Hi,

danke für den Tipp, aber das ist es nicht.
Wenn Du da allowed:=false machst, erlaubt er auch kein Drag&Drop mit der selektierten, dann aber nicht fokusierten Node.

Außerdem fällt mir nichts ein, wie ich das in meinem Beispiel benutzen könnte.
Wenn man beim Draggen ESC drückt, scheint es auch keine Meldung an das Programm zu geben.
WM_CANCELMODE scheint auch nicht im Programm anzukommen.

Also, dass war's leider nicht.

Im Quelltext der VirtualTrees habe ich gesehen, dass der Focus schon bei "HandelMouseDown" gesetzt wird. Vielleicht sollte man den besser bei "HandelMouseUp" setzen. Aber, ob das so einfach geht? (Redundanzen usw.)

Gruß
Mattze

Aviator 4. Jul 2016 15:55

AW: VirtualStringTree (VirtualTreeView) und FocusedNode
 
Zitat:

Zitat von Mattze (Beitrag 1341931)
Im Quelltext der VirtualTrees habe ich gesehen, dass der Focus schon bei "HandelMouseDown" gesetzt wird. Vielleicht sollte man den besser bei "HandelMouseUp" setzen. Aber, ob das so einfach geht? (Redundanzen usw.)

Naja, die Komponente ist ja OpenSource. Du kannst es ja einfach mal ausprobieren. Wird aber sicherlich viel Arbeit. Ansonsten könntest du mal bei JAM-Software, die das Projekt ja übernommen haben, anfragen, ob bei den TreeOptions.SelectionOptions eine Option toSelectOnMouseUp hinzugefügt werden könnte. Für die nächste oder übernächste Version. Die müssen da ja dann auch alles testen und ggf. Bugs eliminieren.


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