![]() |
VST - Nur bestimmte Unterknoten per Multiselect selektieren
Hallo,
ich habe eine Baumstruktur (TVirtualStringTree) die wie folgt aussieht. Sie besteht aus ein paar Hauptknoten (level 0) und darunter befinden sich zwei arten von Unterknoten (SubNode & xxx). Jetzt möchte ich Multiselect aktivieren es aber nur erlauben das man nur die "SubNode" Knoten markieren kann. Klickt der Anwender auf einen Hauptknoten oder auf den Unterknoten (xxx) kann die Makierung der anderen ruhig aufgehoben werden. Es müsste ein Event geben welches vor der Selektion ausgeführt wird in der man entscheiden kann ob der Eintrag selektiert werden darf oder nicht. Ich konnte leider derartiges bisher nicht finden. Geschweige den einen Ansatz für eine Lösung. Ich hoffe jemand von euch hat den entscheidenden Hinweis für mich ;-) mfg GG
Code:
Node1
|-SubNode1 |-SubNode2 |-XXX Node2 |-SubNode1 |-SubNode2 |-SubNode3 |-SubNode4 |-SubNode5 |-XXX Node3 |-SubNode1 |-SubNode2 |-SubNode3 |-xxx |
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Es gibt das Event OnAddToSelection. Da kannst du dann den Allowed Parameter auf False setzen. Gerade per Handy geschrieben. Deshalb kein Beispiel. Ich hoffe ich verwechsel das jetzt nicht.
|
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Zitat:
Da muss ich wohl einfach mal etwas rum experimentieren :) |
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Ja sorry. Hatte das in der Eile mit diversen anderen Events verwechselt. Ich stand (warum ich nicht dran gedacht habe weiß ich nicht) selbst schon mal vor dem gleichen Problem. Habe es schlussendlich so gelöst, dass ich mir den SelektionStatus in meinen NodeDaten gemerkt hatte. Dort konnte ich dann entsprechend über den Setter die Variable auf true bzw. auf false setzen. Aber mit OnFocusChanging könntest du es mal probieren. Da hast du Recht. Das könnte funktionieren. Was du mit dem Event OnAddToSelection machen könntest wäre, dass du den SelektionStatus der Node wieder zurücksetzt wenn die nicht selektiert werden darf. Ist zwar etwas unsauber, aber vielleicht klappt es ja.
Ich wollte immer mal ein Feature Request an JAM Software schreiben, dass die ein OnAddingToSelection Event mit einbauen. Bin aber noch nicht dazu gekommen. Alles kann man irgendwie noch unterbrechen. NodeChange, HeaderResize, ... nur die Selektion kann man nicht mehr abbrechen. Schade eigentlich. |
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Ich habe gerade eine Option gefunden die mich zumindest für einen Großteil weiter bringt.
Ich habe in den TreeOptions.SelectionOptions das Flag 'toSiblingSelectConstraint' gesetzt, dadurch kann ich nur Einträge innerhalb eines Teilbaums gleichzeitig markieren. Komisch ist nur das ich trotzdem auf die anderen Einträge klicken kann und diese den Focus bekommen. ![]() |
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Wie bereits erwähnt war die Option 'toSiblingSelectConstraint' ein Hauptargument für das gelingen dazu habe ich ein paar Feinheiten in den Ereignissen 'OnAddToSelection' und 'OnFocusChanging' angepasst so das das Ergebnis zufriedenstellend ist. :-)
|
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Es lebe der Workaround! :thumb:
|
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
Ich habe gerade mal per Kontaktformular ein Feature Request bei JamSoftware eingestellt. Vielleicht kommt ja was zurück.
Zum Einen das Event OnAddingToSelection. Und zum Anderen eine Property VisibleIndex[Node] des Trees um den aktuellen Index einer Node unabhängig vom dazwischen ausgeblendeten Nodes zu bekommen. Ist dann beim Zeichnen von alternierenden Zeilenfarben besser. Aktuell finde ich hierfür nämlich keine praktikable Lösung. Mache hierfür aber bei Bedarf noch einen extra Fred auf. Das Thema wurde allerdings schon mehrfach behandelt. ![]() |
AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren
:thumb:
Dann mal abwarten ob da was kommt ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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