<?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[TreeView Objekt Ellemenete durchlaufen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe in der letzten Zeit mal die TreeView-Gschichte in diesem Forum verfolgt. Wollte mich nun auch mal in die Sache einarbeiten.<br />
Habe aber schnell ein Problem entdeckt.<br />
Ich habe eine Ordnerstruktur die ich abbilde. Wenn ich auf ein Element Doppelklicke sollen alle Unterobjekte ihre Icons ändern.<br />
Dazu habe ich rekursiv versucht alle untergeordeneten Elemente zu erfassen. Hier der Text:</p>
<pre><code class="language-cpp">__fastcall TForm5::CheckTreeEntry(TTreeNode* Node)
{
/* TreeNode * Node:	Übergabe des Nodes */

	// Funktionsvariablen
	TTreeNode * NextNode;    				// Nächster Node

	NextNode = Node-&gt;GetNext();
	while (NextNode != NULL) {
		AnsiString T = NextNode-&gt;Text;
		// Zustandsprüfung des übergebnenen Knotens
		switch (Node-&gt;ImageIndex) {
			// ZustandsPrüfung des nächsten Knotens
			// Sollte Knoten als Ordner gewählt worden sein...
			case STATE_FOLDER_SELECTED :
				switch (NextNode-&gt;ImageIndex) {
					// Der Unterknoten wir aktviert
					case STATE_FILE_NOTSELECTED :
						NextNode-&gt;ImageIndex = STATE_FILE_SELECTED;
						NextNode-&gt;StateIndex = STATE_FILE_SELECTED;
						break;
					// Sollte der Unterknoten ein Ordner sein, wird dieser
					// aktiviert und die Funktion erneut Rekursiv aufgerufen
					case STATE_FOLDER_NOTSELECTED :
						NextNode-&gt;ImageIndex = STATE_FOLDER_SELECTED;
						NextNode-&gt;StateIndex = STATE_FOLDER_SELECTED;
						CheckTreeEntry(NextNode);
						break;
					default:
					;
				}
				break;
			// Sollte der Knoten als Ordner abgewählt worden sein...
			case STATE_FOLDER_NOTSELECTED :
				switch (NextNode-&gt;ImageIndex) {
					case STATE_FILE_SELECTED :
						NextNode-&gt;ImageIndex = STATE_FILE_NOTSELECTED;
						NextNode-&gt;StateIndex = STATE_FILE_NOTSELECTED;
						break;
					case STATE_FOLDER_SELECTED :
						NextNode-&gt;ImageIndex = STATE_FOLDER_NOTSELECTED;
						NextNode-&gt;StateIndex = STATE_FOLDER_NOTSELECTED;
						CheckTreeEntry(NextNode);
						break;
				default:
					;
				}
			default:
				;
		}
		// Nächster Knoten wird ausgewählt
		NextNode = Node-&gt;GetNext();
	}

}
</code></pre>
<p>Leider scheint es so, dass ich nur die ersten untergeordneten Elemente dabei erreiche. Danach bleibt das aktuelle Elment, das erste des Letzten Unterordners. Ich möchhte aber alle Elemente der Unterordner erreichen.<br />
Wie kann ich das realisieren.<br />
Alle Unertknoten sollen ihr ImageIndex und Stateindes ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209565/treeview-objekt-ellemenete-durchlaufen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 14:40:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209565.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Apr 2008 08:50:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TreeView Objekt Ellemenete durchlaufen on Tue, 01 Apr 2008 08:50:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe in der letzten Zeit mal die TreeView-Gschichte in diesem Forum verfolgt. Wollte mich nun auch mal in die Sache einarbeiten.<br />
Habe aber schnell ein Problem entdeckt.<br />
Ich habe eine Ordnerstruktur die ich abbilde. Wenn ich auf ein Element Doppelklicke sollen alle Unterobjekte ihre Icons ändern.<br />
Dazu habe ich rekursiv versucht alle untergeordeneten Elemente zu erfassen. Hier der Text:</p>
<pre><code class="language-cpp">__fastcall TForm5::CheckTreeEntry(TTreeNode* Node)
{
/* TreeNode * Node:	Übergabe des Nodes */

	// Funktionsvariablen
	TTreeNode * NextNode;    				// Nächster Node

	NextNode = Node-&gt;GetNext();
	while (NextNode != NULL) {
		AnsiString T = NextNode-&gt;Text;
		// Zustandsprüfung des übergebnenen Knotens
		switch (Node-&gt;ImageIndex) {
			// ZustandsPrüfung des nächsten Knotens
			// Sollte Knoten als Ordner gewählt worden sein...
			case STATE_FOLDER_SELECTED :
				switch (NextNode-&gt;ImageIndex) {
					// Der Unterknoten wir aktviert
					case STATE_FILE_NOTSELECTED :
						NextNode-&gt;ImageIndex = STATE_FILE_SELECTED;
						NextNode-&gt;StateIndex = STATE_FILE_SELECTED;
						break;
					// Sollte der Unterknoten ein Ordner sein, wird dieser
					// aktiviert und die Funktion erneut Rekursiv aufgerufen
					case STATE_FOLDER_NOTSELECTED :
						NextNode-&gt;ImageIndex = STATE_FOLDER_SELECTED;
						NextNode-&gt;StateIndex = STATE_FOLDER_SELECTED;
						CheckTreeEntry(NextNode);
						break;
					default:
					;
				}
				break;
			// Sollte der Knoten als Ordner abgewählt worden sein...
			case STATE_FOLDER_NOTSELECTED :
				switch (NextNode-&gt;ImageIndex) {
					case STATE_FILE_SELECTED :
						NextNode-&gt;ImageIndex = STATE_FILE_NOTSELECTED;
						NextNode-&gt;StateIndex = STATE_FILE_NOTSELECTED;
						break;
					case STATE_FOLDER_SELECTED :
						NextNode-&gt;ImageIndex = STATE_FOLDER_NOTSELECTED;
						NextNode-&gt;StateIndex = STATE_FOLDER_NOTSELECTED;
						CheckTreeEntry(NextNode);
						break;
				default:
					;
				}
			default:
				;
		}
		// Nächster Knoten wird ausgewählt
		NextNode = Node-&gt;GetNext();
	}

}
</code></pre>
<p>Leider scheint es so, dass ich nur die ersten untergeordneten Elemente dabei erreiche. Danach bleibt das aktuelle Elment, das erste des Letzten Unterordners. Ich möchhte aber alle Elemente der Unterordner erreichen.<br />
Wie kann ich das realisieren.<br />
Alle Unertknoten sollen ihr ImageIndex und Stateindes ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484234</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Tue, 01 Apr 2008 08:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to TreeView Objekt Ellemenete durchlaufen on Tue, 01 Apr 2008 09:35:00 GMT]]></title><description><![CDATA[<p>Schon gelöst</p>
<pre><code class="language-cpp">__fastcall TForm5::CheckTreeEntry(TTreeNode* Node)
{
/* TreeNode * Node:	Übergabe des Nodes
   bool bChecked:	Angabe ob angewählt */

	// Funktionsvariablen
	TTreeNode * NextNode;    				// Nächster Node

	NextNode = Node-&gt;GetNext();

	while (NextNode != NULL) {
		// Zustandsprüfung des übergebnenen Knotens
		switch (Node-&gt;ImageIndex) {
			// ZustandsPrüfung des nächsten Knotens
			// Sollte Knoten als Ordner gewählt worden sein...
			case STATE_FOLDER_SELECTED :
				switch (NextNode-&gt;ImageIndex) {
					// Der Unterknoten wir aktviert
					case STATE_FILE_NOTSELECTED :
						NextNode-&gt;ImageIndex = STATE_FILE_SELECTED;
						NextNode-&gt;StateIndex = STATE_FILE_SELECTED;
						break;
					// Sollte der Unterknoten ein Ordner sein, wird dieser
					// aktiviert und die Funktion erneut Rekursiv aufgerufen
					case STATE_FOLDER_NOTSELECTED :
						NextNode-&gt;ImageIndex = STATE_FOLDER_SELECTED;
						NextNode-&gt;StateIndex = STATE_FOLDER_SELECTED;
						CheckTreeEntry(NextNode);
						break;
					default:
					;
				}
				break;
			// Sollte der Knoten als Ordner abgewählt worden sein...
			case STATE_FOLDER_NOTSELECTED :
				switch (NextNode-&gt;ImageIndex) {
					case STATE_FILE_SELECTED :
						NextNode-&gt;ImageIndex = STATE_FILE_NOTSELECTED;
						NextNode-&gt;StateIndex = STATE_FILE_NOTSELECTED;
						break;
					case STATE_FOLDER_SELECTED :
						NextNode-&gt;ImageIndex = STATE_FOLDER_NOTSELECTED;
						NextNode-&gt;StateIndex = STATE_FOLDER_NOTSELECTED;
						CheckTreeEntry(NextNode);
						break;
				default:
					;
				}
			default:
				;
		}

		NextNode = NextNode-&gt;getNextSibling(); //Node-&gt;GetNext();

	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1484276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484276</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:35:00 GMT</pubDate></item></channel></rss>