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 - Auswahl aufheben (https://www.delphipraxis.net/43343-virtualtreeview-auswahl-aufheben.html)

Michael_Bayer 2. Apr 2005 11:07


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

Gruber_Hans_12345 2. Apr 2005 11:10

Re: VirtualTreeView - Auswahl aufheben
 
hat der nicht ne funktion .ClearSelection ?

Michael_Bayer 2. Apr 2005 11:12

Re: VirtualTreeView - Auswahl aufheben
 
Zitat:

Zitat von Gruber_Hans_12345
hat der nicht ne funktion .ClearSelection ?

Ich müsst' nur wissen, wann ich auf einen freien Bereich klicke...

generic 2. Apr 2005 13:52

Re: VirtualTreeView - Auswahl aufheben
 
wenn du in einen freien bereich reinklickst sollte kein node den focus haben.

also "vst.focusednode=nil"

Michael_Bayer 2. Apr 2005 14:34

Re: VirtualTreeView - Auswahl aufheben
 
Zitat:

Zitat von generic
wenn du in einen freien bereich reinklickst sollte kein node den focus haben.

also "vst.focusednode=nil"

Nein, geht nicht. Wenn vst.focusednode ist immer der blau hinterlegte Eintrag.

generic 4. Apr 2005 10:20

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

Michael_Bayer 4. Apr 2005 10:25

Re: VirtualTreeView - Auswahl aufheben
 
Zitat:

Zitat von generic
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

Allerdings funtioniert ein
Delphi-Quellcode:
If Assigned(VST.FocusedNode) = nil then bla
im OnClick funktioniert nicht. (wenn ich auf einen freien Bereich unter den Einträgen klicke, wird bla nicht ausgeführt.)

Addi 26. Jan 2006 11:07

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:
  if (HitInfo.HitNode = nil) then                    
  begin
    ClearSelection;
    FocusedNode := nil;
    FFocusedNode := nil;
  end;
Gefunden nach dem Try&Error-Prinzip...

MfG

Addi

itashadow 14. Aug 2008 12:48

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;

omata 16. Aug 2008 14:15

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 23:36 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