Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Alle Einträge im TreeView markieren


Bronstein - Mo 06.03.06 16:51
Titel: Alle Einträge im TreeView markieren
Wie kann ich alle Einträge die es im TreeView gibt markieren


digi_c - Di 07.03.06 12:18


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
items.beginupdate; //neuzeichnen verhindern
for i:= 0 to items.count do
begin
 items[i].Selected:=true;
end;
items.endupdate;


Ich glaube nicht, das es da was einfaches gab.


GTA-Place - Di 07.03.06 18:02

Habs mal probiert und festgestellt, dass die Methode bei mir nicht funktioniert. Außerdem muss es Count - 1 heißen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  X: Integer;
begin
  with Treeview1 do
  begin
    Items.BeginUpdate;
    for X := 0 to Items.Count - 1 do
      Items[X].Selected := True;
    Items.EndUpdate;
  end;
end;


Bronstein - Mi 08.03.06 08:27

Die Funktion funktioniert nicht es wird immer nur das letzte ausgewählt.


digi_c - Mi 08.03.06 09:06

Treeview.Multiselect ändert daran auch nichts?


Bronstein - Mi 08.03.06 13:20

Ist auf true gesetzt, von Hand aus kann ich auch alle auswählen, möchte nur mit einem Button, dass alle ausgewählt sind.


reichemi - Mi 08.03.06 13:43

evtl. gehts mit TreeView1.Select(...) oder TreeView1.Subselect(...) ? :gruebel:


GTA-Place - Mi 08.03.06 20:18


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  X: Integer;
begin
  for X := 0 to TreeView1.Items.Count - 1 do
    TreeView1.Subselect(TreeView1.Items[X]);
  TreeView1.SetFocus;
end;

(getestet)

So funktioniert es.


digi_c - Mi 08.03.06 21:47

Aha bei Selected bleiben also wohl die Anzeigen nicht konsistent? Ich habe schon gedacht ich bin blöd ;)
Jaja die Kleinigkeiten der Programmierung :roll: