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 VST Bestimmte Nodes sollen nicht selektierbar sein? (https://www.delphipraxis.net/135462-vst-bestimmte-nodes-sollen-nicht-selektierbar-sein.html)

newbe 11. Jun 2009 08:46


VST Bestimmte Nodes sollen nicht selektierbar sein?
 
Hallo zusammen!

Ich würde gern mit dem VirtualStringTree bei Einstellung Multiselection enabled haben, das ich nur bestimmte Nodes
selektieren kann. Ist sowas machbar? Kann mir vielleicht jemand einen Ansatz dazu geben

mfG Newbe

himitsu 11. Jun 2009 09:02

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
wie soll diese Selektierung denn aussehn?


ich glaub es gibt eine Option, wo nur mehrere SubItems innerhal eines Items selektiert werden können.

und ich hatte es mal so gemacht, daß ich im OnSelectChange (oder wie das nochmal hieß) einfach die entsprechende Selection wieder entfernte, wenn sie mir nicht "gefiehl"

newbe 11. Jun 2009 09:40

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
Hi himitsu,

weist du zufällig wie die Option heist?

Newbe

himitsu 11. Jun 2009 09:49

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
nee, hab grad keinen VST installert.

aber es sollte sich im OI finden lassen :stupid:

sh17 11. Jun 2009 10:05

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
könntest das ganze ja auch über checkboxen machen und nur den Nodes welche verpassen (im onInit), welche dürfen. So spart man sich evtl das tastatur-mausgeklicke für alle einarmigen unter uns

newbe 11. Jun 2009 10:09

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
@sh17

Der User soll einfach nicht die möglichkeit haben bestimmte Nodes zu selektieren. Checkboxes sind für mich leider keine Option, da ich den Grundaufbau des Baumes nicht ändern darf.

Newbe

sh17 11. Jun 2009 10:39

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
Zitat:

Zitat von newbe
da ich den Grundaufbau des Baumes nicht ändern darf.

...Ein Teufelskreis :twisted:

Probier mal im OnChange mit vst.Selected[Node] das gewünschte zu erreichen. Ich weiß nur nicht, ob das irgend welche Nebeneffekte hat.

//Edit

ODer du setzt den Node im OnInit auf disabled - Farbe für solche Knoten ggf anpassen.

Hawkeye219 11. Jun 2009 10:41

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
Hallo Newbe,

himitsu meint wahrscheinlich die Auswahl-Optionen toLevelSelectConstraint (nur Knoten in der gleichen Ebene auswählbar) und toSiblingSelectConstraint (nur Geschwisterknoten auswählbar). Falls du eine Auswahl in mehreren Ebenen zulassen möchtest, helfen diese Optionen leider nicht weiter.

Als Benutzer wäre ich verwirrt, wenn ich bestimmte sichtbare Knoten nicht anwählen könnte. Vielleicht ist es besser, diese Knoten gar nicht erst anzuzeigen. Wenn du die Struktur des Baums nicht ändern möchtest oder darfst, dann kannst du die Knoten temporär über die Array-Eigenschaft IsVisible[] des Baums ein- und wieder ausblenden.

Gruß Hawkeye

chaosben 11. Jun 2009 12:30

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
Die einfachste Lösung ist, im OnFocusChanging Allowed auf false zu setzen, wenn dieser Knoten nicht ausgewählt werden darf.

OT:
Ganz gemein:
Delphi-Quellcode:
procedure TForm3.VirtualStringTree1FocusChanging(Sender: TBaseVirtualTree;
  OldNode, NewNode: PVirtualNode; OldColumn, NewColumn: TColumnIndex;
  var Allowed: Boolean);
begin
  Allowed := Random(2) = 1;
end;
:-D

newbe 11. Jun 2009 13:00

Re: VST Bestimmte Nodes sollen nicht selektierbar sein?
 
Danke an Alle!

werde das so machen wie chaosben vorschlägt. :)

herzliche Grüße

Newbe


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