<?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[Lösungsansätze der Datenhaltung für __closure]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe z.B. eine Klasse für Druckroutinen, diese Klasse verfügt über eine __closure</p>
<p>Nun will ich an diese __closure Daten bzw. Variableninhalte übergeben.</p>
<p>Eine Möglichkeit wäre diese Daten als Instanzvariable der Eigentümerklasse der Methode die an das __closure übergeben würde zu halten, dies finde ich aber nicht schön. Wie macht man so etwas professioneller.</p>
<p>DANKE im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/125670/lösungsansätze-der-datenhaltung-für-__closure</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 14:21:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/125670.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Nov 2005 15:20:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 15:20:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe z.B. eine Klasse für Druckroutinen, diese Klasse verfügt über eine __closure</p>
<p>Nun will ich an diese __closure Daten bzw. Variableninhalte übergeben.</p>
<p>Eine Möglichkeit wäre diese Daten als Instanzvariable der Eigentümerklasse der Methode die an das __closure übergeben würde zu halten, dies finde ich aber nicht schön. Wie macht man so etwas professioneller.</p>
<p>DANKE im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911869</guid><dc:creator><![CDATA[IcemanX]]></dc:creator><pubDate>Tue, 08 Nov 2005 15:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 15:39:34 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Häh?<br />
__closure wird zur Definition von klassenunabhängigen Methodenpointern benutzt, um z.B. die VCl-Events zu realisieren.<br />
Wenn du also irgendwelche Parameter mit einem solcehn Event übergeben willst, dann must du doch nur die Definition des Methodenpointers um eben diesen Parameter erweitern.</p>
<p>Ansonsten erklär am besten mal konkret an einem Beispiel was du wissen willst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911899</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 08 Nov 2005 15:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 15:47:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a></p>
<p>ja Problem ist das die Klasse die das __closure ausführt nicht verändert werden soll!!!!</p>
<p>Hier ein Beispiel:</p>
<pre><code>//------------------------------------------------
void xxx::tuwas(){    
   String s = &quot;ich bin ein text&quot;;
   m_ll-&gt;m_CallPrint = print;   
}
//------------------------------------------------
// __closure 
void xxx::print{
  // hier würde ich gerne Zugriff auf die Var. s aus tuwas haben,
  // ohne diese als Instanzvar. zu definieren
}
//------------------------------------------------
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/911906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911906</guid><dc:creator><![CDATA[IcemanX]]></dc:creator><pubDate>Tue, 08 Nov 2005 15:47:53 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 15:53:55 GMT]]></title><description><![CDATA[<p>Warum lässt du tuwas() den String nicht einfach zurückgeben und rufst die Funktion in print auf?<br />
So wie das jetzt ist ist s lokal und ist somit aussen nicht sichtbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911913</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 08 Nov 2005 15:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:04:54 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a></p>
<p>kann leider tuwas() aus einigen gründen nicht aus print aufrufen.</p>
<p>wenn es so einfach wäre, das wär schon ....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911932</guid><dc:creator><![CDATA[IcemanX]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:08:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Irgendetwas must du sowohl in tuwas <em>als auch</em> in print ändern. Also ändere gleich die Methodenpointer-Definition, sodas du einen zusätzlichen Parameter für den String hast.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911936</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:08:53 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:19:05 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Irgendetwas must du sowohl in tuwas <em>als auch</em> in print ändern. Also ändere gleich die Methodenpointer-Definition, sodas du einen zusätzlichen Parameter für den String hast.</p>
<p>bis bald<br />
akari</p>
</blockquote>
<p>Verstehe ich nicht ganz, kannst mir auch ein kleines Beispiel geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911950</guid><dc:creator><![CDATA[IcemanX]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:19:05 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:33:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Da ich immer noch nicht weiß, aus welcher Methode du welchen Event mit welchem Typ du aufrufst, kann ich nur allgemein bleiben.<br />
Normalerweise werden __closure in solcehn Definitionen verwendet, wie hier im TNotifyEvent :</p>
<pre><code class="language-cpp">void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
</code></pre>
<p>du kannst zum Beispiel so einen Typ definieren</p>
<pre><code class="language-cpp">typedef void __fastcall (__closure *TPrintEvent)(const AnsiString &amp;s);
</code></pre>
<p>.<br />
Dann muß aber die Methode, die du einem Methodenpointer von diesem Typ zuweisen willst, von genau dem selben Typ sein.</p>
<pre><code class="language-cpp">// in xxx einen Methodenpointer deklarieren, im Konstruktor von xxx erstmal auf NULL setzen
xxx::TPrintEvent PrintEvent;
...
// dort auf eine Methode einer gültigen Instanz von yyy verweisen
PrintEvent = MyYYY.print;
...
void xxx::tuwas(){    
   String s = &quot;ich bin ein text&quot;;
   if (PrintEvent) PrintEvent(s);
}
//------------------------------------------------

void __fastcall yyy::print(const AnsiString &amp;s){
  ShowMessage(s);

}
//------------------------------------------------
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911962</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:33:17 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:43:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a></p>
<p>print wird in der klasse die in der Variablem m_ll inizialisiert ist aufgerufen!</p>
<p>siehe:<br />
m_ll-&gt;m_CallPrint = print;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911975</guid><dc:creator><![CDATA[IcemanX]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:49:38 GMT]]></title><description><![CDATA[<p>Dann kannst du ja bei diesen Aufruf die variable auch zuweisen. Du müßtest s aber zur Membervariablen von xxx oder der Klasse von m_ll machen. Ist m_ll Member von xxx?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911985</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsansätze der Datenhaltung für __closure on Tue, 08 Nov 2005 16:51:01 GMT]]></title><description><![CDATA[<p>IcemanX schrieb:</p>
<blockquote>
<p>print wird in der klasse die in der Variablem m_ll inizialisiert ist aufgerufen!</p>
<p>siehe:<br />
m_ll-&gt;m_CallPrint = print;</p>
</blockquote>
<p>Ich sehe da keinen Aufruf oder Initialisierung, nur eine Zuweisung.<br />
Ich sehe mit dem was du bis jetzt gepostest hast in deiner Klassenstruktur nicht durch, also kann ich dir keine detaillierteren Hinweise geben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911987</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 08 Nov 2005 16:51:01 GMT</pubDate></item></channel></rss>