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 Treeview (https://www.delphipraxis.net/50152-treeview.html)

Schodn 21. Jul 2005 09:59


Treeview
 
ich müsste in einer Treeview alle notes einzeln mit allen unterpunkte durchsuchen ob ein note bzw unterpunkt einen bestimmten text enthält.

Wenn nein, lösche das ganze note und gehe zum nächsten note.
Wenn ja, gehe zum nächsten note

i hab in 3 stunden urlaub und kann mich überhaupt nicht mehr konzentrieren also helfts mir bitte

barf00s 21. Jul 2005 10:07

Re: Treeview
 
die dinger heißen "Node" und nicht "Note"

Delphi-Quellcode:
var
  xNode: TTreeNode;

begin
  xNode := TreeView1.GetFirst;
  while xNode <> nil do begin
    if xNode.Text = 'whatever' then
      TreeView1.Items.Delete(TreeView1.Items.IndexOf(xNode))
    xNode := TreeView1.GetNext; // oder GetNextSibling
  end;
end;
andere möglichkeit wäres wohl einfach durch die items zu loopen und dann den passenden node zu löschen

Delphi-Quellcode:
for I := TreeView1.Items.Count - 1 downto 0 do
  if TreeView1.Items[I].Text = 'whatever' then
    TreeView1.Items.Delete(I);
kA bin kein großer fan vom TTreeView aber so in etwa wirds wohl funktionieren

Schodn 21. Jul 2005 10:30

Re: Treeview
 
du hast mich falsch verstanden

ich möchte wenn der text nirgends vorkommt den ganzen ordner löschen
wenn er aber irgendwo vorkommt soll dieser ordner nicht verändert werden und alles beim alten bleiben mit allen unterverzeichnisen

Es sollen nur die ordner gelöscht werden wo es nicht vorkommt

cell 21. Jul 2005 10:36

Re: Treeview
 
sry kenn mich mit dem nicht aus wünsch dir aber einen schönen urlaub :mrgreen: :sharkylinchen:

ibp 21. Jul 2005 10:40

Re: Treeview
 
nur weil du in Gedanken schon am Strand liegst, können wir doch nichts dafür, dass du nicht erklären kannst was du willst. wie man einen TreeView durchsucht, wurde dir erklärt! ein wenig mithelfen musst du schon! Wie sieht dein Code aus?

marabu 21. Jul 2005 11:04

Re: Treeview
 
Da haste:

Delphi-Quellcode:
function TreeContains(node: TTreeNode; nodeText: string): boolean;
begin
  Result := (node.Text = nodeText);
  if Result or (node.Count = 0) then Exit;
  node := node.getFirstChild;
  repeat
    Result := Result or TreeContains(node, nodeText);
    node := node.getNextSibling;
  until not Assigned(node) or Result;
end;

procedure TreeClean(node: TTreeNode; nodeText: string);
begin
  if TreeContains(node, nodeText) then begin
    node := node.GetLastChild;
    while Assigned(node) do begin
      TreeClean(node, nodeText);
      node := node.getPrevSibling;
    end
  end else
    node.Delete;
end;
Grüße vom marabu

Schodn 21. Jul 2005 12:05

Re: Treeview
 
Ok vielen dank

eine frage hätt ich noch und zwar
Wie kann ich in der Treeview den 3.Hauptknoten löschen?


-1
^^-23
-2
-3
^^-33

dh ich will den -3 mit allen seinen Childs löschen

marabu 21. Jul 2005 12:23

Re: Treeview
 
Delphi-Quellcode:
TreeView.Items[2].Delete;
marabu


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