AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VST - Nur bestimmte Unterknoten per Multiselect selektieren
Thema durchsuchen
Ansicht
Themen-Optionen

VST - Nur bestimmte Unterknoten per Multiselect selektieren

Ein Thema von TUX_der_Pinguin · begonnen am 14. Jul 2016 · letzter Beitrag vom 22. Jul 2016
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 08:47
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
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 08:53
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.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 08:58
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.
OnAddToSelection hat den Parameter "Allowed" nicht aber OnFocusChanging ...

Da muss ich wohl einfach mal etwas rum experimentieren
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 09:37
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.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 09:50
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.


http://www.delphipraxis.net/552575-post2.html
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 11:30
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.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 14. Jul 2016, 12:57
Es lebe der Workaround!
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 21. Jul 2016, 13:23
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. Beispiel!
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: VST - Nur bestimmte Unterknoten per Multiselect selektieren

  Alt 22. Jul 2016, 08:22


Dann mal abwarten ob da was kommt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 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