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

BetaBot 12. Apr 2009 14:21


TreeView Auswahl aufheben
 
Hallo Delphi - Gemeinde,

nach langer erfolgloser Suche habe ich mich entschlossen, hier zu posten. Mein Problem erscheint so simpel und doch kann ich es nicht lösen. Zur Veranschaulichung: ich habe eine ListBox und einen TreeView (wirklich nur zur Veranschaulichung).

ListBox: 1. Meier 2. Schulze 3. Lehmann

Treeview:

Land
Stadt
Straße

Edit: zeigt die entsprechenden Daten

Ich wähle Meier aus der ListBox, dann Land aus TreeView und Edit zeigt die Daten.
Nun mein Problem: Jetzt wähle ich Schulze aus der ListBox und wieder Land und es passiert nichts.
Der gewählte Knoten und die folgende Aktion wird im OnChange - Ereignis des TreeViews festgelegt.
Nun mein Verdacht: Bei Schulze und wieder Land passiert nichts, weil Land im TreeView immer noch selektiert ist und somit nichts "gechanged" wird.
Wie kann ich die Selektion auflösen?

Delphi-Quellcode:
myTreeView.Deselect(myTreeView.Selected)
funktioniert nicht.

Ich hoffe, ich konnte mein Problem ausreichend darstellen und ihr könnt mir helfen.
Danke im Voraus,

der BetaBot

dominikkv 12. Apr 2009 14:36

Re: TreeView Auswahl aufheben
 
Ich würde auch noch im onChange der ListBox das Edit aktualisieren (TEdit als anzeige?!).

Ansonsten:
Delphi-Quellcode:
myTreeView.Selected := NIL;
Aber achtung: auch das löst das OnChange aus.

BetaBot 12. Apr 2009 14:47

Re: TreeView Auswahl aufheben
 
Hi Dominik,

Delphi-Quellcode:
myTreeView.Selected := Nil;
löst bei mir eine Zugriffsverletzung aus. Ich denke, wegen
Delphi-Quellcode:
Case Node.SelectedIndex of
im OnChange - Ereignis der TreeView.
Wenn ich TreeView.Selected := Nil setze, wie groß ist den dann der SelectedIndex? -1? oder 0?

Vielleicht kann ich in die OnChange etwas schreiben wie
Delphi-Quellcode:
If Node.SelectedIndex < 0 then exit
, oder so...

dominikkv 12. Apr 2009 14:55

Re: TreeView Auswahl aufheben
 
Node.SelectedIndex ist immer 0, egal welchen Eintrag ich wähle. Und wegen dem kommt auch die AV. Was du meinst ist wohl Node.Index, Node ja der Ausgewählte Eintrag ist.
Dieser ist nach
Delphi-Quellcode:
myTreeView.Selected := Nil;
-1

Und prüfen würde ich mit
Delphi-Quellcode:
if Assigned(Node) then

BetaBot 12. Apr 2009 14:56

Re: TreeView Auswahl aufheben
 
Hab die Lösung gefunden:

Im OnClick - Ereignis der ListBox:

Delphi-Quellcode:
myTreeView.Selected := nil;
Im OnChange - Ereignis der TreeView:

Delphi-Quellcode:
If myTreeView.Selected = nil then Exit;
Am Ende doch machbar. Ich hoffe, es hilft vielleicht noch dem einen oder anderen.

Tschüß,

der BetaBot


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