Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TreeView: TreeNode -> untergeordneter Eintrag (https://www.delphipraxis.net/20448-treeview-treenode-untergeordneter-eintrag.html)

Die Muhkuh 18. Apr 2004 07:56


TreeView: TreeNode -> untergeordneter Eintrag
 
Hoi?,



und gleich wieder eine Frage:

Ich hab ein TreeView auf meiner Form. Jetzt möcht ich da Items reinstopfen. Das ist kein Problem.

Code:
Kategorie1
Ketegorie2
^^ So sieht das dann aus.

Wie schaffe ich aber das es auch so geht:

Code:
Kategorie1
  + Untereintrag <- Das hinzufügen
  + Untereintrag <- Das hinzufügen
Ketegorie2
.
.
.

Sharky 18. Apr 2004 08:00

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
Hai Spider,

das Problem hatte ich bei meiner Code-Library auch ;-)
Wo gibst Du denn an zu welcher Kategrie ein Untereintrag gehört?

SirThornberry 18. Apr 2004 08:00

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
Delphi-Quellcode:
var LNode: TTreeNode;
begin
  LNode := Treeview1.Items.Add(TreeView1.Items.GetFirstNode, 'Kategorie1');
  TreeView1.Items.AddChild(LNode, 'Untereintrag1');
  TreeView1.Items.AddChild(LNode, 'Untereintrag2');

Die Muhkuh 18. Apr 2004 08:05

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
@Sharky

wie meinst?



@Sir

noch nicht ganz.

Die Kategorie ist schon erzeugt. Unter diese Kategorie soll nun ein Eintrag.

Das steht schon da:

Code:
Kategorie1
Kategorie2
und jetzt kann man zu jeder Kategorie noch einen Untereintrag machen können.

toms 18. Apr 2004 08:20

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
Vielleicht so?

Delphi-Quellcode:
var
 i: Word;
 Node: TTreeNode;
begin
 Assert(TreeView1.Items.Count > 0);
 with TreeView1 do
 begin
   Node := Items[0];
 repeat
   Items.AddChild(Node, 'Untereintrag');
   Node := Node.GetNextSibling
 until Node = nil;
end;

Sharky 18. Apr 2004 08:29

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
Zitat:

Zitat von Spider
@Sharky
wie meinst?

Ich meine nur das ich das selbe Problem bei meinem Projekt hatte.

Aber die Frage bleibt: Wo/Wie wird in deinem Programm festgelegt zu welcher Kategorie ein neuer Eintrag gehört?

SirThornberry 18. Apr 2004 08:43

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
Delphi-Quellcode:
function FindRootNode(ACaption: String; ATreeView: TTreeView): TTreeNode;
var LCount: Integer;
begin
  result := nil;
  LCount := 0;
  while (LCount < ATreeView.Items.Count) and (result = nil) do
  begin
    if (ATreeView.Items.Item[LCount].Text = ACaption) and (ATreeView.Items.Item[LCount].Parent = nil) then
      result := ATreeView.Items.Item[LCount];
    inc(LCount);
  end;
end;
Aufruf:
Delphi-Quellcode:
var LDestNode: TTreeNode;
begin
  LDestNode := FindRootNode('Kategorie1', TreeView1);
  if LDestNode <> nil then
  begin
    TreeView1.Items.AddChild(LDestNode, 'Untereintrag1');
    TreeView1.Items.AddChild(LDestNode, 'Untereintrag1');
  end;
end;
[Edit2]Um allen Kritiken gerecht zu werden zur Funktion umgebaut[/Edit2]

Die Muhkuh 18. Apr 2004 08:47

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
@Sir


so ists perfect!

toms 18. Apr 2004 08:49

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
@SirThornberry: Der Ansatz mit einer for-Schleife kann nicht funktionieren, da sich beim
Hinzufügen von Items die Item-Zahl erhöht aber TreeView1.Items.Count konstant bleibt,
da's nur einmal aufgerufen wird.

Dein Code fügt nur Kategorie1 etwas hinzu, nicht aber Ketegorie2
(auch wenn Ketegorie2 Kategorie1 heissen würde)

Sharky 18. Apr 2004 08:50

Re: TreeView: TreeNode -> untergeordneter Eintrag
 
Wenn Du jetzt nach dem hinzufügen der Untereinträge noch ein break; machst wird die Schleife nicht unnötig weiter durchlaufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.
Seite 1 von 2  1 2      

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