<?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[Tag Eigenschaft und Zeiger?]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich möchte gern in mein Button-&gt;Tag den Zeiger einer Zeichenkette angeben, so das ich darüber drauf zugreifen kann.<br />
Ist dies möglich?</p>
<p>char *text = &quot;hello world!&quot;;</p>
<p>Nun die Adresse in Button1-&gt;Tag ablegen geht aber nicht oder?<br />
Falls doch kann jemand ein kleines Beispiel posten? Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123496/tag-eigenschaft-und-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 10:21:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123496.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Oct 2005 14:44:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 14:44:47 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich möchte gern in mein Button-&gt;Tag den Zeiger einer Zeichenkette angeben, so das ich darüber drauf zugreifen kann.<br />
Ist dies möglich?</p>
<p>char *text = &quot;hello world!&quot;;</p>
<p>Nun die Adresse in Button1-&gt;Tag ablegen geht aber nicht oder?<br />
Falls doch kann jemand ein kleines Beispiel posten? Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894220</guid><dc:creator><![CDATA[guestX]]></dc:creator><pubDate>Mon, 17 Oct 2005 14:44:47 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:00:40 GMT]]></title><description><![CDATA[<p>Button1-&gt;Tag=(int)text;</p>
<p>Wenn du die VCL benutzt solltest du mit AnsiString (String) arbeiten</p>
<p>String text=&quot;Hallo Welt&quot;;<br />
Button-&gt;Tag=(int)text.c_str();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894232</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:10:23 GMT]]></title><description><![CDATA[<p>und wie macht man aus dem Button1-&gt;Tag wieder den Text? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/894244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894244</guid><dc:creator><![CDATA[guestX]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:19:45 GMT]]></title><description><![CDATA[<p>Hallo</p>
<pre><code class="language-cpp">AnsiString Text = &quot;Test&quot;;
  BitBtn1-&gt;Tag = reinterpret_cast&lt;int&gt; (&amp;Text); // Adresse des AnsiStrings an Tag übergeben
  AnsiString Text2 = *(reinterpret_cast&lt;AnsiString*&gt; (BitBtn1-&gt;Tag)); // Aus Tag wieder AnsiString kopieren
</code></pre>
<p>Aber Achtung, Text muß in der gesamten Zeit, wo du auf den Tag zugreifen könntest, gültig sein!</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894254</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:24:57 GMT]]></title><description><![CDATA[<p>Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/894264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894264</guid><dc:creator><![CDATA[guestX]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:31:30 GMT]]></title><description><![CDATA[<p>Ist sowas eigentlich sicher?<br />
Mal ganz abgesehen davon, dass ich nicht von mir behaupten kann, ein Freund von diesen Tag-Lösungen zu sein,<br />
finde ich auch, dass es klarere Lösungen gibt.<br />
Wenn man schon unbedingt die Tag-Eigenschaft verwenden will, würde ich mir eher eine Lösung mit einer<br />
StringList vorstellen.<br />
Möglich wäre auch sowas:</p>
<pre><code class="language-cpp">TStringList* buttonTexts = new TStringList();
for (/* alle Buttons */)
  buttonTexts-&gt;Values[Button-&gt;Name] = &quot;mein Text, den ich mit diesem Button assozieren möchte&quot;;
</code></pre>
<p>In einer Ereignisbehandlungsroutine kann man dann über Sender wieder an den Namen kommen.<br />
Die Lösung funktioniert auch für andere TControl-Abkömmlinge, da alle die Name-Eigenschaft haben.<br />
Da Controls innerhalb eines Formulars eindeutige Namen haben müssen, sollte das eindeutig sein.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894270</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:42:02 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>sicher, eine TStringList und die Verwendung des entsprechenden String-Index für Tag ist auch keine schlechte Idee.<br />
Die cast-Methode ist grundsätzlich sicher, wenn auch nicht schön.<br />
Der Nachteil deiner zweiten Methode mit dem Namen in der StringList ist, das das Suchen per Namen länger dauert als der Zugriff über Adresse oder Index.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894281</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:42:02 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:46:46 GMT]]></title><description><![CDATA[<p>Christian211 schrieb:</p>
<blockquote>
<p>String text=&quot;Hallo Welt&quot;;<br />
Button-&gt;Tag=(int)text.c_str();</p>
</blockquote>
<p>Geht das so??<br />
Ich dachte .c_str() würde irgenwie nur einen &quot;temporären&quot; Zeiger liefern.</p>
<p>Klärt mich auf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>mfg<br />
xXx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894286</guid><dc:creator><![CDATA[-**xXx**-]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 15:59:57 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>@ -=]xXx[=- :<br />
das geht, solange text selber gültig ist und nicht verändert wird.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894296</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 17 Oct 2005 15:59:57 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 16:00:31 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Der Nachteil deiner zweiten Methode mit dem Namen in der StringList ist, das das Suchen per Namen länger dauert als der Zugriff über Adresse oder Index.</p>
</blockquote>
<p>Wirst Du das spüren?</p>
<p>-=]xXx[=- schrieb:</p>
<blockquote>
<p>Ich dachte .c_str() würde irgenwie nur einen &quot;temporären&quot; Zeiger liefern.</p>
</blockquote>
<p>Dachte ich auch. Die Lösung würde ich bei mir nicht einbauen.<br />
Meiner Meinung nach widerspricht dies auch der Aussage</p>
<p>Christian211 schrieb:</p>
<blockquote>
<p>Wenn du die VCL benutzt solltest du mit AnsiString (String) arbeiten</p>
</blockquote>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894297</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 17 Oct 2005 16:00:31 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 16:04:03 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>das geht, solange text selber gültig ist und nicht verändert wird.</p>
</blockquote>
<p>Mit anderen Worten: Glücksspiel <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ß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894301</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 17 Oct 2005 16:04:03 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 17:17:47 GMT]]></title><description><![CDATA[<blockquote>
<p>Mit anderen Worten: Glücksspiel</p>
</blockquote>
<p>Das trifft wohl auf alle Zeiger zu. Wenn die Speicherplätze wo der Zeiger hinzeigt verändert werden, dann ist bei allen Zeigern Schluß.</p>
<blockquote>
<p>Meiner Meinung nach widerspricht dies auch der Aussage</p>
</blockquote>
<p>????</p>
<p>String ist die Klasse AnsiString der VCL und c_str() eine Methode dieser Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894359</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Mon, 17 Oct 2005 17:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 17:23:58 GMT]]></title><description><![CDATA[<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>akari schrieb:</p>
<blockquote>
<p>Der Nachteil deiner zweiten Methode mit dem Namen in der StringList ist, das das Suchen per Namen länger dauert als der Zugriff über Adresse oder Index.</p>
</blockquote>
<p>Wirst Du das spüren?</p>
</blockquote>
<p>Bei diesem beispiel vielleicht nicht. Aber man sollte generell direkte Zugriffe dem langsamen String-Absuchen vorziehen. Genauso wie ich niemals TForm::FindComponent() verwenden würde. Ich bevorzuge Arrays ind Indizes.</p>
<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>-=]xXx[=- schrieb:</p>
<blockquote>
<p>Ich dachte .c_str() würde irgenwie nur einen &quot;temporären&quot; Zeiger liefern.</p>
</blockquote>
<p>Dachte ich auch. Die Lösung würde ich bei mir nicht einbauen.</p>
</blockquote>
<p>Ich würde das bei mir auch nicht einbauen. Aber es funktioniert, wenn man sauber programmiert.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894371</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 17 Oct 2005 17:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to Tag Eigenschaft und Zeiger? on Mon, 17 Oct 2005 17:42:38 GMT]]></title><description><![CDATA[<p>Christian211 schrieb:</p>
<blockquote>
<p>Wenn die Speicherplätze wo der Zeiger hinzeigt verändert werden, dann ist bei allen Zeigern Schluß.</p>
</blockquote>
<p>Ja, aber bei selbst erzeugten Zeigern kannst Du das auch selbst bestimmen, wann der Zeiger ungültig wird - bei c_str()<br />
nicht. Du kannst Dir dazu auch mal die BCB-Hilfe zu AnsiString::c_str() anschauen (ist im Forum auch schon mehrfach<br />
erwähnt worden).</p>
<p>Christian211 schrieb:</p>
<blockquote>
<p>String ist die Klasse AnsiString der VCL und c_str() eine Methode dieser Klasse.</p>
</blockquote>
<p>...und was gibt c_str() zurück? Wenn schon, dann so wie es Akari vorgeschlagen hat - obwohl ich die Lösung auch<br />
nicht &quot;schön&quot; finde.</p>
<p>akari schrieb:</p>
<blockquote>
<p>Aber man sollte generell direkte Zugriffe dem langsamen String-Absuchen vorziehen.</p>
</blockquote>
<p>Vor absoluten Aussagen versuche ich mich möglichst zu hüten. Ich versuche zunächst immer ein schlüssiges Design zu<br />
bekommen und schaue anschließend, ob das ganze effizient genug ist. Wenn man flexible dynamische Strukturen hat,<br />
kommt man oft nur schwierig um solche langsamen Konstrukte herum. Mir ist auch Verständlichkeit und (Menschen-)Lesbarkeit<br />
des Codes wichtig, weshalb ich eine lesbare Version zunächst einer (vermeintlich) schnellen Version vorziehe.</p>
<p>akari schrieb:</p>
<blockquote>
<p>Genauso wie ich niemals TForm::FindComponent() verwenden würde. Ich bevorzuge Arrays ind Indizes.</p>
</blockquote>
<p>Sag niemals nie <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wir haben hier eine Übersetzungskomponente gebaut, die automatisch Formulare übersetzt. Die einzelnen Komponenten werden<br />
dabei über den Namen referenziert. Hier ist FindComponent() ungemein praktisch. Eine Lösung über Arrays o.ä. will mir<br />
dazu nicht einfallen - außer einer for-Schleife und Vergleich auf Namen.</p>
<p>akari schrieb:</p>
<blockquote>
<p>es funktioniert, wenn man sauber programmiert.</p>
</blockquote>
<p>Könntest Du das ein wenig genauer ausführen?<br />
Sauber programmieren heißt für mich nicht, irgendwo fragile Konstrukte zu verwenden, in die der nächste Kollege böse<br />
hereinfallen kann - zumal der nächste Kollege ich selbst sein könnte...</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/894401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/894401</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 17 Oct 2005 17:42:38 GMT</pubDate></item></channel></rss>