![]() |
VirtualTreeView - Auswahl aufheben
Hallo.
Wenn ich in meinem VST einen Eintrag anklicke, wird er blau unterlegt und ist "selected". Wie bekomme ich das denn hin, dass wenn ich auf einen leeren Bereich klicke, der "selectede" Eintrag deselektiert wird? Ich habe schon mit AfterItemPaint rumgespielt, aber ich weiß ja nicht, wann ich auf einen leeren Bereich klicke... Gruß Micha |
Re: VirtualTreeView - Auswahl aufheben
hat der nicht ne funktion .ClearSelection ?
|
Re: VirtualTreeView - Auswahl aufheben
Zitat:
|
Re: VirtualTreeView - Auswahl aufheben
wenn du in einen freien bereich reinklickst sollte kein node den focus haben.
also "vst.focusednode=nil" |
Re: VirtualTreeView - Auswahl aufheben
Zitat:
|
Re: VirtualTreeView - Auswahl aufheben
blau hinterlegt werden selektierte einträge. der focus wird durch ein gepunktete umrandung dargestellt.
eine blaue markierung bekommst du weg mit "vst.ClearSelection". einzelne markierungen kannst du mit "vst.Selected[node]:=false" aufheben |
Re: VirtualTreeView - Auswahl aufheben
Zitat:
Delphi-Quellcode:
im OnClick funktioniert nicht. (wenn ich auf einen freien Bereich unter den Einträgen klicke, wird bla nicht ausgeführt.)
If Assigned(VST.FocusedNode) = nil then bla
|
Re: VirtualTreeView - Auswahl aufheben
Also wenn du der VirtualTrees.pas in Zeile 20483 folgendes hinzufügst, dann wird die Auswahl beim Klick auf eine leere Stelle gelöscht:
Delphi-Quellcode:
Gefunden nach dem Try&Error-Prinzip...
if (HitInfo.HitNode = nil) then
begin ClearSelection; FocusedNode := nil; FFocusedNode := nil; end; MfG Addi |
Re: VirtualTreeView - Auswahl aufheben
ist zwar schon ein bisschen älter aber ich hatte dasselbe problem
und der letzte beitrag hat mich auf eine andere idee gebracht die ich hier posten wollte falls noch jemand das problem hat einfach folgenden code am anfang vom onclick ereignis des trees packen
Delphi-Quellcode:
if vst.Selected[vst.FocusedNode] = false then
begin vst.ClearSelection; vst.FocusedNode:= nil; end; |
Re: VirtualTreeView - Auswahl aufheben
Hier ein weiterer Vorschlag...
Delphi-Quellcode:
procedure TForm.VSTMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if not assigned(VST.GetNodeAt(X, Y)) then begin VST.ClearSelection; VST.FocusedNode:=nil; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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