<?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[Problem mit TObjectList-&amp;gt;Sort]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich arbeite mit dem Borland C++-Builder 6.0 und habe ein Problem mit dem Sortieralgorithmus der TObjectList.<br />
In der Hilfe ist dazu folgendes Beispiel angegeben:</p>
<pre><code class="language-cpp">int __fastcall CompareNames(void *Item1, void *Item2)
{
  return CompareText(((TComponent *)Item1)-&gt;Name, ((TComponent *)Item2)-&gt;Name);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  List1-&gt;Sort(CompareText);
}
</code></pre>
<p>In meiner Anwendung wollte ich das jetzt so umsetzen:</p>
<pre><code class="language-cpp">// Definition der Vergleich-Funktion
int __fastcall CompareNames(void *Item1, void *Item2)
{
  return CompareText(((c_Mitarbeiter *)Item1)-&gt;getNachname(), ((c_Mitarbeiter *)Item2)-&gt;getNachname());
}

// Aufruf der Sortier-Methode
ObjectList1-&gt;Sort(CompareText);
</code></pre>
<p>Dabei ist ‚c_Mitarbeiter’ eine selbst geschriebene Klasse, die dort definierte Methode ‚getNachname’ gibt einen AnsiString zurück.</p>
<p>Für die Zeile, in der der Sort-Aufruf stattfindet, erscheint beim Kompilieren folgende Fehlermeldung:<br />
<em><em>&quot;Konvertierung von ‚int (__fastcall</em>)(const AnsiString, const AnsiString)’ nach ‚int(__fastcall</em>)(void*, void*)’ nicht möglich&quot;**</p>
<p>Ist das Problem, dass er einen AnsiString vergleichen soll? Oder kann man keine selbst geschriebenen Klassen zur Sortierung verwenden?</p>
<p>Ich würde mich freuen, wenn mir jemand einen Tipp gibt, was ich falsch mache.</p>
<p>Vielen Dank,<br />
Junimond</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142269/problem-mit-tobjectlist-gt-sort</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 00:32:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142269.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Mar 2006 07:02:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit TObjectList-&amp;gt;Sort on Wed, 29 Mar 2006 07:02:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich arbeite mit dem Borland C++-Builder 6.0 und habe ein Problem mit dem Sortieralgorithmus der TObjectList.<br />
In der Hilfe ist dazu folgendes Beispiel angegeben:</p>
<pre><code class="language-cpp">int __fastcall CompareNames(void *Item1, void *Item2)
{
  return CompareText(((TComponent *)Item1)-&gt;Name, ((TComponent *)Item2)-&gt;Name);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  List1-&gt;Sort(CompareText);
}
</code></pre>
<p>In meiner Anwendung wollte ich das jetzt so umsetzen:</p>
<pre><code class="language-cpp">// Definition der Vergleich-Funktion
int __fastcall CompareNames(void *Item1, void *Item2)
{
  return CompareText(((c_Mitarbeiter *)Item1)-&gt;getNachname(), ((c_Mitarbeiter *)Item2)-&gt;getNachname());
}

// Aufruf der Sortier-Methode
ObjectList1-&gt;Sort(CompareText);
</code></pre>
<p>Dabei ist ‚c_Mitarbeiter’ eine selbst geschriebene Klasse, die dort definierte Methode ‚getNachname’ gibt einen AnsiString zurück.</p>
<p>Für die Zeile, in der der Sort-Aufruf stattfindet, erscheint beim Kompilieren folgende Fehlermeldung:<br />
<em><em>&quot;Konvertierung von ‚int (__fastcall</em>)(const AnsiString, const AnsiString)’ nach ‚int(__fastcall</em>)(void*, void*)’ nicht möglich&quot;**</p>
<p>Ist das Problem, dass er einen AnsiString vergleichen soll? Oder kann man keine selbst geschriebenen Klassen zur Sortierung verwenden?</p>
<p>Ich würde mich freuen, wenn mir jemand einen Tipp gibt, was ich falsch mache.</p>
<p>Vielen Dank,<br />
Junimond</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026099</guid><dc:creator><![CDATA[junimond]]></dc:creator><pubDate>Wed, 29 Mar 2006 07:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit TObjectList-&amp;gt;Sort on Wed, 29 Mar 2006 07:22:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich vermute es muß so aussehen</p>
<pre><code class="language-cpp">ObjectList1-&gt;Sort(CompareNames);
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026113</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 29 Mar 2006 07:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit TObjectList-&amp;gt;Sort on Wed, 29 Mar 2006 07:37:37 GMT]]></title><description><![CDATA[<p>Hallo akari,</p>
<p>danke für die schnelle Antwort!</p>
<p>Ich hab das so versucht, wie du vorgeschlagen hast, dabei bringt er folgenden Konvertierungsfehler:<br />
<em><em>&quot;Konvertierung von 'int(__fastcall</em>)(__closure )(void</em>, void*))(void*, void*)' nach 'int(__fastcall*)(void*, void*)' nicht möglich&quot;**</p>
<p>Die Meldung sieht mir noch etwas kryptischer aus als die vorherige. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Vor allem der Teil mit dem '(__closure )' ist mir unbekannt, das Schlüsselwort habe ich ja auch in meinem Code gar nicht verwendet.<br />
Hat jemand vielleicht eine Idee, was es damit auf sich haben könnte?</p>
<p>Gruß<br />
Junimond</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026134</guid><dc:creator><![CDATA[junimond]]></dc:creator><pubDate>Wed, 29 Mar 2006 07:37:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit TObjectList-&amp;gt;Sort on Wed, 29 Mar 2006 07:40:54 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>nein, die Fehlermeldung ist nicht kryptisch, sondern sagt (aufgrund des __closure im ersten Teil) das du CompareNames als Klassenmethode deklariert hast. Es muß aber eine statische Funktion sein.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026137</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 29 Mar 2006 07:40:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit TObjectList-&amp;gt;Sort on Wed, 29 Mar 2006 08:00:35 GMT]]></title><description><![CDATA[<p>Hallo akari,</p>
<p>jetzt funktioniert es, vielen Dank für die schnelle Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß<br />
Junimond</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026157</guid><dc:creator><![CDATA[junimond]]></dc:creator><pubDate>Wed, 29 Mar 2006 08:00:35 GMT</pubDate></item></channel></rss>