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 OnChange Ereignisse von TTreeView gezielt ignorieren (https://www.delphipraxis.net/29523-onchange-ereignisse-von-ttreeview-gezielt-ignorieren.html)

unerwartet 10. Sep 2004 11:04


OnChange Ereignisse von TTreeView gezielt ignorieren
 
Hallo,

folgendes Problem stellt sich mir. Als Beispiel habe ich einen Baum in dieser Form:

Code:
Eintrag1
   Untereintrag1
   Untereintrag2
Also einen Knoten mit 2 Unterknoten. Ich reagiere auf OnChange Ereignisse, will also wissen, wenn sich die Auswahl der Knoten ändert. Mulitselect ist aktiviert, es können also auch mehrere ausgewählt werden.
Was ich will ist, dass auch Gruppen ausgewählt werden können. Wenn also jemand Eintrag1 auswählt, sollen gleichzeitig Untereintrag1 und Untereintrag2 mit ausgewählt werden. Beim Deselektieren genauso.
Ich habe das gelöst, indem ich in der OnChange Methode abfrage ob Eintrag1 selektiert oder deselektiert ist und die beiden Unterknoten ebenso setze:
Code:
selectedState:= Eintrag1.Selected;
Untereintrag1.Selected:= selectedState;
Untereintrag2.Selected:= selectedState;
Problematisch hierbei ist, dass damit für die beiden Untereinträge ja wieder ein OnChange Event ausgelöst wird. Das ist zum einen unnötig, da diese ja nicht mehr behandelt werden müssen. Schlimmer noch aber ist, wenn jemand ohne Multiselect (also ohne Drücken der Shift- oder Controltaste) den Eintrag1 auswählt, dass danach nur noch Untereintrag2 als gewählt markiert ist. Einfach dadurch, dass keine Modifier-Taste gedrückt ist und somit nur ein Eintrag als markiert dargestellt wird, obwohl ich doch eigentlich alle drei markieren will.

Ich hoffe ich konnte ungefähr klar stellen, wo mein Problem liegt. Ist das vlt. irgendwie lösbar?

Gruß
Marco


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