AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TreeView: Mehrere Knoten markieren

Ein Thema von Redeemer · begonnen am 29. Mär 2013 · letzter Beitrag vom 29. Mär 2013
Antwort Antwort
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#1

TreeView: Mehrere Knoten markieren

  Alt 29. Mär 2013, 04:50
Delphi-Version: 2009
Hier gibt’s ja seit Jahren für so ziemlich alle meiner Fragen in der Vergangenheit eine Antwort. Nun habe ich aber auch mit der Suchfunktion nichts gefunden:

Mein Programm soll in einem Standard-TTreeView zur Laufzeit mehrere Knoten markieren, die den vom Benutzer angegebenen Kriterien entsprechen. Sobald ich TreeView.Items[i].Selected := True; setze, verschwinden aber alle anderen Markierungen, obwohl das TreeView Multiselect hat.

Bin für alle Vorschläge dankbar. Frohe Ostern.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: TreeView: Mehrere Knoten markieren

  Alt 29. Mär 2013, 10:01
Offenbar besteht keine Möglichkeit, programmseitig mehrere Nodes gleichzeitig zu selektieren, wie ich eben selbst beim Herumprobieren rausfinden mußte. Eine Alternative wäre die Komponentensammlung Virtual Tree View von Mike Lischke (Freeware), die weitaus mehr bietet als der mitgelieferte TTreeView. Allerdings erfordert Virtual Tree View ein wenig Einarbeitungszeit ... Ich selbst hatte TTreeView zuvor noch niemals verwendet, sondern immer nur Virtual Tree View.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: TreeView: Mehrere Knoten markieren

  Alt 29. Mär 2013, 10:16
Das geht schon mit TTreeView, im Demo werden alle "ungeraden" Nodes ausgewählt.
Delphi-Quellcode:
procedure TForm4.Button1Click(Sender: TObject);
var
  i: Integer;
  FirstSelect: Boolean;

  Procedure Select(aNode: TTreenode);
  begin
    if FirstSelect then
    begin
      aNode.Selected := true;
      FirstSelect := false;
    end
    else
      tv.Subselect(aNode);
  end;

begin
  FirstSelect := true;
  for i := 0 to tv.Items.Count - 1 do
    if i and 1 = 1 then
      Select(tv.Items[i]);
  tv.SetFocus;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#4

AW: TreeView: Mehrere Knoten markieren

  Alt 29. Mär 2013, 15:08
Danke Bummi, das hat funktioniert. Es hat zwar teilweise jetzt nicht mehr richtig ent-markiert, aber dann habe ich vorher TreeView.ClearSelection(); aufgerufen und dann geht es.
Janni
2005 PE, 2009 PA, XE2 PA
  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 05:53 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