<?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[Verzeichnis auslesen mit Icons]]></title><description><![CDATA[<p>Hi Community,<br />
Ich habe mir eine Funktion geschrieben die ein Verzeichnis mit zugehörigen Icons ausliest und in eine ListView-Komponente einträgt.<br />
Es funktioniert soweit alles sehr gut (auch wenn es weder schön , noch Komplett ist, wie man an den Kommentaren erkennen kann).<br />
Aber leider dauert es ziemlich lange bis alles fertig ist und deshalb wollte ich fragen warum bzw. wie kann ich das ändern?</p>
<pre><code class="language-cpp">void __fastcall TListe::SearchFilesList(String dir)
{
    Form5-&gt;ListView1-&gt;Items-&gt;Clear();
    WIN32_FIND_DATA filedata;
    HANDLE filehandle;
    int pos,i=0;
    String typ;
    LPWORD nummer;
    TIcon *MyIcon = new TIcon();
    Form5-&gt;ListIcons-&gt;Clear();
    filehandle = FindFirstFile((dir+&quot;\\*.*&quot; ).c_str(), &amp;filedata);
    bool found = (filehandle != INVALID_HANDLE_VALUE);
    while (found == true)
    {
        String file=filedata.cFileName;
        if (((filedata.dwFileAttributes &amp; FILE_ATTRIBUTE_HIDDEN) == 0)
            &amp;&amp; (file != &quot;.&quot;) &amp;&amp; (file != &quot;..&quot;)){

           TListItem *Subfolder = Form5-&gt;ListView1-&gt;Items-&gt;Add();
           //Dateiname
           Subfolder-&gt;Caption=file;
           //Icon
           String lol=dir+&quot;\\&quot;+file;
           lol=ReplaceStr(lol,&quot;\\\\&quot;,&quot;\\&quot;);// Pfad ist mit doppeltem backslash
           MyIcon-&gt;Handle=ExtractAssociatedIcon(Form5-&gt;Handle,lol.c_str(),nummer);
           if(MyIcon-&gt;Handle!=NULL)
           {
               Form5-&gt;ListIcons-&gt;AddIcon(MyIcon);
           }
           Subfolder-&gt;ImageIndex=i;
           i++;
           //FileTime
           Subfolder-&gt;SubItems-&gt;Add(&quot;&quot;);

           if((filedata.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) ==0){
               //Typ
               pos=LastDelimiter(&quot;.&quot;,filedata.cFileName);
               typ=String(filedata.cFileName);
               typ=typ.Delete(1,pos);
               if(typ==&quot;Ink&quot;){
                   Subfolder-&gt;SubItems-&gt;Add(&quot;Verknüpfung&quot;);
               }else{
                   Subfolder-&gt;SubItems-&gt;Add(typ+&quot;-Datei&quot;);
               }
           }else{
               Subfolder-&gt;SubItems-&gt;Add(&quot;Verzeichnis&quot;);
           }
           if((filedata.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) !=0){

           //Größe hierher

           }
        }
        else
        {
        }
        found = FindNextFile(filehandle, &amp;filedata);

    }
    FindClose(filehandle);
    DestroyIcon(MyIcon);
}
</code></pre>
<p>Danke schonmal<br />
XBert</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192179/verzeichnis-auslesen-mit-icons</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 21:20:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192179.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Sep 2007 13:13:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verzeichnis auslesen mit Icons on Tue, 11 Sep 2007 13:13:44 GMT]]></title><description><![CDATA[<p>Hi Community,<br />
Ich habe mir eine Funktion geschrieben die ein Verzeichnis mit zugehörigen Icons ausliest und in eine ListView-Komponente einträgt.<br />
Es funktioniert soweit alles sehr gut (auch wenn es weder schön , noch Komplett ist, wie man an den Kommentaren erkennen kann).<br />
Aber leider dauert es ziemlich lange bis alles fertig ist und deshalb wollte ich fragen warum bzw. wie kann ich das ändern?</p>
<pre><code class="language-cpp">void __fastcall TListe::SearchFilesList(String dir)
{
    Form5-&gt;ListView1-&gt;Items-&gt;Clear();
    WIN32_FIND_DATA filedata;
    HANDLE filehandle;
    int pos,i=0;
    String typ;
    LPWORD nummer;
    TIcon *MyIcon = new TIcon();
    Form5-&gt;ListIcons-&gt;Clear();
    filehandle = FindFirstFile((dir+&quot;\\*.*&quot; ).c_str(), &amp;filedata);
    bool found = (filehandle != INVALID_HANDLE_VALUE);
    while (found == true)
    {
        String file=filedata.cFileName;
        if (((filedata.dwFileAttributes &amp; FILE_ATTRIBUTE_HIDDEN) == 0)
            &amp;&amp; (file != &quot;.&quot;) &amp;&amp; (file != &quot;..&quot;)){

           TListItem *Subfolder = Form5-&gt;ListView1-&gt;Items-&gt;Add();
           //Dateiname
           Subfolder-&gt;Caption=file;
           //Icon
           String lol=dir+&quot;\\&quot;+file;
           lol=ReplaceStr(lol,&quot;\\\\&quot;,&quot;\\&quot;);// Pfad ist mit doppeltem backslash
           MyIcon-&gt;Handle=ExtractAssociatedIcon(Form5-&gt;Handle,lol.c_str(),nummer);
           if(MyIcon-&gt;Handle!=NULL)
           {
               Form5-&gt;ListIcons-&gt;AddIcon(MyIcon);
           }
           Subfolder-&gt;ImageIndex=i;
           i++;
           //FileTime
           Subfolder-&gt;SubItems-&gt;Add(&quot;&quot;);

           if((filedata.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) ==0){
               //Typ
               pos=LastDelimiter(&quot;.&quot;,filedata.cFileName);
               typ=String(filedata.cFileName);
               typ=typ.Delete(1,pos);
               if(typ==&quot;Ink&quot;){
                   Subfolder-&gt;SubItems-&gt;Add(&quot;Verknüpfung&quot;);
               }else{
                   Subfolder-&gt;SubItems-&gt;Add(typ+&quot;-Datei&quot;);
               }
           }else{
               Subfolder-&gt;SubItems-&gt;Add(&quot;Verzeichnis&quot;);
           }
           if((filedata.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) !=0){

           //Größe hierher

           }
        }
        else
        {
        }
        found = FindNextFile(filehandle, &amp;filedata);

    }
    FindClose(filehandle);
    DestroyIcon(MyIcon);
}
</code></pre>
<p>Danke schonmal<br />
XBert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363333</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Tue, 11 Sep 2007 13:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnis auslesen mit Icons on Sun, 16 Sep 2007 18:47:41 GMT]]></title><description><![CDATA[<p>Hi XBert,</p>
<p>jede gefundene Datei wird innerhalb deiner while-Schleife ins ListView eingetragen. Durch diese graphische Aufgabe wird die Funktion SearchFilesList(String dir) erheblich ausgebremst.</p>
<p>Vorschlag :<br />
Schreibe innerhalb der while nicht ins ListView sondern in den Speicher (evtl. ein StringList) und am Ende der Funktion im Stück in das ListView (da die Icons ja wohl auch in einer ImageList liegen, bietet sich das an).</p>
<p>Etwas späte Antwort auf deine Frage, und auch nur eine Anregung.</p>
<p>Tschö kpeter<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366559</guid><dc:creator><![CDATA[kpeter]]></dc:creator><pubDate>Sun, 16 Sep 2007 18:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnis auslesen mit Icons on Sun, 16 Sep 2007 21:32:12 GMT]]></title><description><![CDATA[<p>Man kann auch Zeit einsparen in dem man das neu Zeichnen der ListView verhindert das ja auch beim hinzufügen entsteht, mittels:</p>
<pre><code class="language-cpp">SendMessage(lv-&gt;Handle, WM_SETREDRAW, FALSE, 0);
</code></pre>
<p>bzw. wieder aktivieren nach dem man die Items hinzugefügt hat</p>
<pre><code class="language-cpp">SendMessage(lv-&gt;Handle, WM_SETREDRAW, TRUE, 0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1366643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366643</guid><dc:creator><![CDATA[VergissEs]]></dc:creator><pubDate>Sun, 16 Sep 2007 21:32:12 GMT</pubDate></item></channel></rss>