AGB  ·  Datenschutz  ·  Impressum  







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

Treeview selected Node einfärben

Ein Thema von josefkoller · begonnen am 4. Feb 2014 · letzter Beitrag vom 5. Feb 2014
 
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Treeview selected Node einfärben

  Alt 4. Feb 2014, 21:50
Hallo,

Zitat:
Ich möchte den selktierten Knoten beginnend vom Hauptknoten bis zu all seinen Childknoten einfärben?
Ich weiß jetzt nicht, ob ich Dein Anliegen richtig verstanden habe, aber ich versuche es mal.

Zitat:
ehrlich gesagt, ich hab keinen blassen Schimmer, wie ich das anstellen soll.
Um das Selektieren mehrerer Knoten zu ermöglichen, müssen die Eigenschaften MultiSelect und MultiSelectStyle der Treeview entsprechend gesetzt werden (dadurch kann aber auch der User mehrere Konten selektieren!).
Dann noch die gewünschten Knoten selektieren, fertig; Leider geht es nicht so einfach über: Node.Selected := True; , aber ein Node.TreeView.Select (Node, [ssCtrl, ssShift]); tut es.

In Code gegossen könnte das so gehen:
1. Variante (der User hat die Möglichkeit mehrere Knoten per Maus zu selektieren):
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
  TreeView1.MultiSelect := True;
  TreeView1.MultiSelectStyle := [msControlSelect, msShiftSelect]
end;

procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode);

  procedure SelectAllNodes (Node : TTreeNode);
  begin
    while Assigned (Node) do
      begin
        Node.TreeView.Select (Node, [ssCtrl, ssShift]);
        SelectAllNodes (Node.getFirstChild);
        Node := Node.getNextSibling
      end
  end;

begin
  if not Assigned (Node.Parent) then
    begin
      Node.Expand (True);
      SelectAllNodes (Node.getFirstChild)
    end
end;
2. Variante (der User hat kein Möglichkeit mehrere Knoten per Maus zu selektieren, wenn ich nix übersehen habe):
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
  TreeView1.MultiSelect := True
end;

procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode);

  procedure SelectAllNodes (Node : TTreeNode);
  begin
    while Assigned (Node) do
      begin
        Node.TreeView.Select (Node, [ssCtrl, ssShift]);
        SelectAllNodes (Node.getFirstChild);
        Node := Node.getNextSibling
      end
  end;

begin
  if not Assigned (Node.Parent) then
    try
      TreeView1.MultiSelectStyle := [msControlSelect, msShiftSelect];
      Node.Expand (True);
      SelectAllNodes (Node.getFirstChild)
    finally
      TreeView1.MultiSelectStyle := []
    end
end;
Vielleicht hilft es weiter.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
 


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 15:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz