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 TTreeView Selektierung in Abhängigkeit von Objekt (https://www.delphipraxis.net/168737-ttreeview-selektierung-abhaengigkeit-von-objekt.html)

haentschman 7. Jun 2012 16:44

TTreeView Selektierung in Abhängigkeit von Objekt
 
Hallo alle...

Ich habe ein TTreeView mit Multiselect. Jetzt möchte ich, daß in Abhängigkeit des Objektes in Data des Nodes der Knoten selektiert werden kann oder nicht.

Welche Denkanstöße habt ihr für mich ?

Danke...

Furtbichler 7. Jun 2012 17:30

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
Eine TreeView, drei Nodes ('A', 'B', 'C')... Alles außer B darf selektiert werden
Delphi-Quellcode:
procedure TForm3.TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
Var
  N : TTreeNode;

  begin
  N := TreeView.GetNodeAt(X,Y);
  if assigned (N) then
      N.Selected := (N.Text <> 'B');
end;
Edit: TreeView.Multiselect := True;

himitsu 7. Jun 2012 21:40

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
Und dann kommt wer daher und benutzt doch tatsächlich die Tastatur, um das zu selektieren :mrgreen:

Furtbichler 8. Jun 2012 06:39

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
Delphi-Quellcode:
Label.Caption:='Verwenden Sie nicht die Tastatur!';
Problem gelöst :mrgreen:

Ich hab grad probiert, mit der Tastatur ein Multiselect zu machen, klappt eh nicht so richtig. Oder ich bin noch zu müde.

haentschman 8. Jun 2012 08:07

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
Moin...

Danke erst mal für Eure Infos. Nach vielem Probieren habe ich mich entschieden die Selektierung zuzulassen und beim Drag zu entscheiden welche Objekte Übernommen werden. Es ging dabei um übergeordnete Knoten die nicht selektiert werden sollten.

Da gleich nach dem Einlesen des Tree´s der erste Knoten selektiert wird, und ich das nicht verhindern konnte, war die Entscheidung leicht :zwinker:

Peinhard 8. Jun 2012 11:59

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
TTreeView bietet den Event OnChanging, übergeben wird der Node, der selektiert werden soll sowie ein var AllowChange, mit dem man die Selektion verhindern kann. Solltest du dich entschliessen, TTreeView abzuleiten, dh eine eigene Komponente zu erstellen, kannst du auch die virtuelle Methode CanChange entsprechend überschreiben.

haentschman 8. Jun 2012 12:29

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
Das kann ja wohl nicht die Norm sein... :roll:

Ich habe sämtliche Events versucht... nur OnChanging nicht :evil:

Delphi-Quellcode:
AllowChange:= TeAV_Work(Node.Data).Choice > 0;
macht es dann genau wie gewünscht. :thumb:

Danke

himitsu 10. Jun 2012 03:04

AW: TTreeView Selektierung in Abhängigkeit von Objekt
 
Zitat:

Zitat von Furtbichler (Beitrag 1169918)
Ich hab grad probiert, mit der Tastatur ein Multiselect zu machen, klappt eh nicht so richtig.

Strg+Pfeiltaste zum Wechseln/Rumlaufen
Leertaste zum Selektieren
Strg+Leertaste zum (De)Selektieren
Shift+Pfeiltaste für Bereichsauswahl
Strg+Shift+Pfeiltaste für additive Bereichsauswahl
Shift+Leertaste aktualisiert die Bereichsauswahl
Strg+Shift+Leertaste aktualisiert und verbindet die Bereichsauswahl
und ich glaub es gab noch mehr


Ist bei nahezu allen Trees/Listen so, vorallem die welche unverändert auf die WinControls gehn, also z.B. auch im Windows Explorer.
In neueren Explorern ab mindestens Win7 kann man sich aber auch Checkboxen im Explorer anzeigen lassen, bzw. natürlich auch in den ListViews.


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