<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wie ein TreeView richtig füllen?]]></title><description><![CDATA[<p>Hi. Ich versuche ein TreeView aus einer Datenbank zu füllen. Dabei habe ich aus der Datenbank die Abhängigkeiten in Form eines Zahlenwertes (Werte 1-5, wobei immer der vorangehende in Bezug steht. Beispielsweise so:</p>
<pre><code>Text1
Text2
Text3
  ----- Text31
  ----- Text32
           -----Text321
  ----- Text33
           -----Text331
Text4
</code></pre>
<p>usw.</p>
<p>Nun habe ich Probleme mit den Nodes. Über</p>
<pre><code>TreeView1-&gt;Items-&gt;Add(Node1,DataSource1-&gt;DataSet-&gt;FieldByName(&quot;Feldname&quot;)-&gt;AsString);
</code></pre>
<p>kann ich mühelos die unterste Ebene neu mit Werten anlegen. Auch das anlegen über AddChild funktioniert einwandfrei. Mein Problem besteht darin, wie ich kontrolliert von z.B. Text321 nach Text33 komme und danach nach Text331 usw.</p>
<p>Habe mir die Borland Hilfe mal angeschaut und auch hier im Forum und im WWW, aber das finde ich eher verwirrend. Kennt jemand einen guten Link, wo die ganzen Sachen mit GetLastChild, GetNext usw. beschrieben werden?</p>
<p>Danke<br />
Carsten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177294/wie-ein-treeview-richtig-füllen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 24 Jun 2026 22:22:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177294.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Mar 2007 22:39:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie ein TreeView richtig füllen? on Thu, 29 Mar 2007 22:39:21 GMT]]></title><description><![CDATA[<p>Hi. Ich versuche ein TreeView aus einer Datenbank zu füllen. Dabei habe ich aus der Datenbank die Abhängigkeiten in Form eines Zahlenwertes (Werte 1-5, wobei immer der vorangehende in Bezug steht. Beispielsweise so:</p>
<pre><code>Text1
Text2
Text3
  ----- Text31
  ----- Text32
           -----Text321
  ----- Text33
           -----Text331
Text4
</code></pre>
<p>usw.</p>
<p>Nun habe ich Probleme mit den Nodes. Über</p>
<pre><code>TreeView1-&gt;Items-&gt;Add(Node1,DataSource1-&gt;DataSet-&gt;FieldByName(&quot;Feldname&quot;)-&gt;AsString);
</code></pre>
<p>kann ich mühelos die unterste Ebene neu mit Werten anlegen. Auch das anlegen über AddChild funktioniert einwandfrei. Mein Problem besteht darin, wie ich kontrolliert von z.B. Text321 nach Text33 komme und danach nach Text331 usw.</p>
<p>Habe mir die Borland Hilfe mal angeschaut und auch hier im Forum und im WWW, aber das finde ich eher verwirrend. Kennt jemand einen guten Link, wo die ganzen Sachen mit GetLastChild, GetNext usw. beschrieben werden?</p>
<p>Danke<br />
Carsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255674</guid><dc:creator><![CDATA[grandmasterb10]]></dc:creator><pubDate>Thu, 29 Mar 2007 22:39:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wie ein TreeView richtig füllen? on Fri, 30 Mar 2007 10:28:10 GMT]]></title><description><![CDATA[<p>Du mußt dir eine Liste aller Parent-Nodes merken und bei jedem neuen Unterknoten diesen als neuen Parent hinzufügen.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">const int MaxParents = 10;
TTreeNode *Parents[MaxParents]; alternativ kannst du auch einen Vector oder eine Liste benutzen

Parents[0] = 0; // Sonderbehandlung für Top-Level Knoten

// bei einem neuen Unterknoten
Parents[Level] = Parents[Level-1]-&gt;Items-&gt;Add(&quot;Neuer Knoten&quot;); // Level ist dein Level-Wert (1-5) aus der Datenbank
</code></pre>
<p>Du mußt jetzt nur noch für Top-Level-Knoten die Sondernbehandlung ausprogrammieren (d.h. dann auf TreeView-&gt;Items statt auf Parents[0]-&gt;Items zugreifen)</p>
<p>P.S: Ich hoffe, ich habe deine Zahlenwerte 1-5 als Level richtig interpretiert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255890</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 30 Mar 2007 10:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie ein TreeView richtig füllen? on Fri, 30 Mar 2007 12:04:37 GMT]]></title><description><![CDATA[<p>grandmasterb10 schrieb:</p>
<blockquote>
<p>Mein Problem besteht darin, wie ich kontrolliert von z.B. Text321 nach Text33 komme und danach nach Text331 usw.</p>
</blockquote>
<p>Dafür mußt Du einfach nur von dem entsprechenden TreeNode aus GetNext aufrufen. Dies liefert Dir jeweils den nächsten Eintrag, egal ob untergeordnet, auf gleicher Ebene, oder übergeordnet.</p>
<p>In der BCB-Hilfe ist folgendes Beispiel;</p>
<pre><code class="language-cpp">TTreeNode *CurItem = TreeView1-&gt;Items-&gt;GetFirstNode();
while (CurItem)
{
  ListBox1-&gt;Items-&gt;Add(CurItem-&gt;Text);
  CurItem = CurItem-&gt;GetNext();
}
</code></pre>
<p>Damit iterierst Du durch den kompletten TreeView. Schau Dir unbedingt mal die Hilfe zu TTreeNodes und TTreeNode an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255942</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 30 Mar 2007 12:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie ein TreeView richtig füllen? on Fri, 30 Mar 2007 18:02:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9348">@Th</a> : Danke erst einmal für Deinen Tip. Ich hatte es mit einem normalen Array auch schon versucht, was aber die Auflistung imens bremst.<br />
Würde gerne Deine Version testen, aber leider hat TTreeNode keine Methode Add</p>
<pre><code class="language-cpp">Parents[Level] = Parents[Level-1]-&gt;Items-&gt;Add(&quot;Neuer Knoten&quot;); // Level ist dein Level-Wert (1-5) aus der Datenbank
</code></pre>
<p>funktioniert dabei nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>@Joe_M : Ich möchte ja nicht einen vorhandenen Tree nach Nodes ablaufen, sondern einen Tree erstellen.<br />
Hatte mir bereits die BCB-Hilfe zu TTreeNode angeschaut.</p>
<p>Gruss<br />
Carsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256223</guid><dc:creator><![CDATA[grandmasterb10]]></dc:creator><pubDate>Fri, 30 Mar 2007 18:02:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie ein TreeView richtig füllen? on Fri, 30 Mar 2007 19:19:25 GMT]]></title><description><![CDATA[<p>Es funktioniert. Manchmal sieht man die Hand vor Trees nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
So funktioniert es :</p>
<pre><code class="language-cpp">Parents[Level] = TreeView1-&gt;Items-&gt;AddChild(Parents[Level-1],DataSource1-&gt;DataSet-&gt;FieldByName(&quot;Feldname&quot;)-&gt;AsString);
</code></pre>
<p>Danke für die Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256256</guid><dc:creator><![CDATA[grandmasterb10]]></dc:creator><pubDate>Fri, 30 Mar 2007 19:19:25 GMT</pubDate></item></channel></rss>