<?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[Virtuelle CListCtrl - Probleme mit der Datenverwaltung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenes Problem.<br />
Ich habe mir eine virtuelle CListCtrl erstellt, die nicht einem Steuerelement zugeordnet ist. D.h. ich erstelle das Element zur Laufzeit.<br />
Ich möchte die GetDispInfo-Methode innerhalb der abgeleiteten Klasse einbauen. Dazu möchte ich eine Struktur bauen, die in allen Dimensionen dynamisch ist.<br />
Ich habe nun verschiedene Ansätze:</p>
<p>1. Einen Vector bzw. CArray von LVITEM<br />
2. Einen 2D Vector mit Item, SubItem und Text<br />
3. Wie 2 nur als 1D Vector</p>
<p>Das Problem ist, dass ich mir nicht sicher bin, wie ich das ganze vernünftig implementieren soll. Die abgeleitete Klasse von CListCtrl besitzt einen Zeiger auf die Daten, die ich beim Create-Aufruf übergebe.</p>
<p>Nehmen wir mal an, die 1. Dimension sind die Items, die ich einfüge.<br />
Habe ich 6 Spalten(Subitems) füge ich also 6 strings ein...<br />
Habe ich nun 3 Items und erweitere das Ganze um eine Spalte, so müsste ich für jedes vorhandene Item ein Subitem einfügen.</p>
<pre><code class="language-cpp">for( int i = 0; i &lt; nItems; i++ ) {
    for( int j = 0; j &lt; n SubItem; j++ ) {
        daten.at[i].at[j].push_back( &quot;bla&quot; );
    }
}
</code></pre>
<p>Ich find das ist eine sehr unsaubere Lösung.<br />
Bilde ich nun einen 1D Vector, wird es nur noch grausiger ;).</p>
<p>Die Lösung mit der Struktur finde ich nicht schlecht, allerdings habe ich da auch ein manko.<br />
Füge ich Items ein mit den Koordinaten</p>
<pre><code class="language-cpp">1,1 ; 1,2 ; 1,3 ; 2,1 ; 2,2 ; 2,3
</code></pre>
<p>und anschließend die 1,4 ein dann sieht das so aus:</p>
<pre><code class="language-cpp">1,1 ; 1,2 ; 1,3 ; 2,1 ; 2,2 ; 2,3 ; 1,4
</code></pre>
<p>Wenn nun die Daten herangeholt werden müssen in der GetDispInfo funktioniert das so:</p>
<pre><code class="language-cpp">for( int i = 0; i &lt; n; i++ ) {
    if( daten[i].item == item &amp;&amp; daten[i].subitem == subitem ) {
        //mach was^^
    }
}
</code></pre>
<p>Meine Frage ist nun, geht das nicht auch so anders? Ich verzweifel hier schon langsam, weil ich einfach nicht weiterkomme in mein Projekt.</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196944/virtuelle-clistctrl-probleme-mit-der-datenverwaltung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 02:50:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196944.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Nov 2007 19:17:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Virtuelle CListCtrl - Probleme mit der Datenverwaltung on Sun, 04 Nov 2007 19:17:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenes Problem.<br />
Ich habe mir eine virtuelle CListCtrl erstellt, die nicht einem Steuerelement zugeordnet ist. D.h. ich erstelle das Element zur Laufzeit.<br />
Ich möchte die GetDispInfo-Methode innerhalb der abgeleiteten Klasse einbauen. Dazu möchte ich eine Struktur bauen, die in allen Dimensionen dynamisch ist.<br />
Ich habe nun verschiedene Ansätze:</p>
<p>1. Einen Vector bzw. CArray von LVITEM<br />
2. Einen 2D Vector mit Item, SubItem und Text<br />
3. Wie 2 nur als 1D Vector</p>
<p>Das Problem ist, dass ich mir nicht sicher bin, wie ich das ganze vernünftig implementieren soll. Die abgeleitete Klasse von CListCtrl besitzt einen Zeiger auf die Daten, die ich beim Create-Aufruf übergebe.</p>
<p>Nehmen wir mal an, die 1. Dimension sind die Items, die ich einfüge.<br />
Habe ich 6 Spalten(Subitems) füge ich also 6 strings ein...<br />
Habe ich nun 3 Items und erweitere das Ganze um eine Spalte, so müsste ich für jedes vorhandene Item ein Subitem einfügen.</p>
<pre><code class="language-cpp">for( int i = 0; i &lt; nItems; i++ ) {
    for( int j = 0; j &lt; n SubItem; j++ ) {
        daten.at[i].at[j].push_back( &quot;bla&quot; );
    }
}
</code></pre>
<p>Ich find das ist eine sehr unsaubere Lösung.<br />
Bilde ich nun einen 1D Vector, wird es nur noch grausiger ;).</p>
<p>Die Lösung mit der Struktur finde ich nicht schlecht, allerdings habe ich da auch ein manko.<br />
Füge ich Items ein mit den Koordinaten</p>
<pre><code class="language-cpp">1,1 ; 1,2 ; 1,3 ; 2,1 ; 2,2 ; 2,3
</code></pre>
<p>und anschließend die 1,4 ein dann sieht das so aus:</p>
<pre><code class="language-cpp">1,1 ; 1,2 ; 1,3 ; 2,1 ; 2,2 ; 2,3 ; 1,4
</code></pre>
<p>Wenn nun die Daten herangeholt werden müssen in der GetDispInfo funktioniert das so:</p>
<pre><code class="language-cpp">for( int i = 0; i &lt; n; i++ ) {
    if( daten[i].item == item &amp;&amp; daten[i].subitem == subitem ) {
        //mach was^^
    }
}
</code></pre>
<p>Meine Frage ist nun, geht das nicht auch so anders? Ich verzweifel hier schon langsam, weil ich einfach nicht weiterkomme in mein Projekt.</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397709</guid><dc:creator><![CDATA[genesis200a]]></dc:creator><pubDate>Sun, 04 Nov 2007 19:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle CListCtrl - Probleme mit der Datenverwaltung on Mon, 05 Nov 2007 01:22:03 GMT]]></title><description><![CDATA[<p>Vielleicht:</p>
<p>vector&lt;string&gt; subitem1_rows;<br />
vector&lt;string&gt; subitem2_rows;<br />
...<br />
vector&lt;vector&lt;string&gt; &gt; columns;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397819</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Mon, 05 Nov 2007 01:22:03 GMT</pubDate></item></channel></rss>