<?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[Klassen und ihre Implementierung]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p>Ich habe mir hier vor ca. zwei Jahren eine Klasse gebastelt. Da war ich noch ganz fit in der Geschichte. Jetzt möchte ich diese Klasse in mein TForm1 so einbinden, dass ich mit</p>
<pre><code>Form1-&gt;Code...
</code></pre>
<p>darauf zugreifen kann.<br />
Die Klasse heißt TCode und wird über</p>
<pre><code>#include &quot;code.h&quot;;
</code></pre>
<p>implementiert. Ich möchte deshalb auf diese Weiße darauf zugreifen können, weil ich in allen anderen Formularen, in die ich &quot;Form1&quot; einbinde, nicht extra auch noch die &quot;code.h&quot; includen möchte. Vor zwei Jahren hätt ich's sicher hinbekommen. Was man doch nicht alles so wieder verlernt :(.</p>
<p>Danke für eure Hilfe.</p>
<p>MFG, Red.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145622/klassen-und-ihre-implementierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 06:14:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145622.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Apr 2006 17:16:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:16:19 GMT]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p>Ich habe mir hier vor ca. zwei Jahren eine Klasse gebastelt. Da war ich noch ganz fit in der Geschichte. Jetzt möchte ich diese Klasse in mein TForm1 so einbinden, dass ich mit</p>
<pre><code>Form1-&gt;Code...
</code></pre>
<p>darauf zugreifen kann.<br />
Die Klasse heißt TCode und wird über</p>
<pre><code>#include &quot;code.h&quot;;
</code></pre>
<p>implementiert. Ich möchte deshalb auf diese Weiße darauf zugreifen können, weil ich in allen anderen Formularen, in die ich &quot;Form1&quot; einbinde, nicht extra auch noch die &quot;code.h&quot; includen möchte. Vor zwei Jahren hätt ich's sicher hinbekommen. Was man doch nicht alles so wieder verlernt :(.</p>
<p>Danke für eure Hilfe.</p>
<p>MFG, Red.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047914</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:45:31 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Jetzt möchte ich diese Klasse in mein TForm1 so einbinden, dass ich mit...<br />
darauf zugreifen kann.</p>
</blockquote>
<p>Das ist etwas unpräzisse. Willst du nur von Methoden in TForm1 aus auf code zugreifen, oder auch von außerhalb?</p>
<p>Ich geh mal vom letzteren aus.<br />
Dann sieht der Header so aus :</p>
<pre><code class="language-cpp">#include &lt;vcl&gt;
...
#include &quot;code.h&quot;

...
  private :
    TCode* m_code; // Pointer auf Form1-abhängige Instanz
  public :
    ...
    __property TCode* Code = {read = m_code};
    ...
</code></pre>
<p>Du bist dann natürlich selber für das Erstellen und Löschen der Instanz in der Implementation von TForm1 zuständig</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047921</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:45:17 GMT]]></title><description><![CDATA[<p>VCL Klassen dürfen nicht mehrere Basisklassen haben. Deswegen dürfte eine Mehrfachvererbung aussscheiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047922</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:45:17 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:46:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>was hat das mit Mehrfachvererbung zu tun? <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>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047923</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:51:54 GMT]]></title><description><![CDATA[<p>Ich habe das so verstanden, dass er etwas im Stil von</p>
<p>class TMain : public TForm, public TCode</p>
<p>machen will</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047925</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:56:12 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>aber nicht wenn er so auf den Code-Teil des Forms zugreifen will</p>
<p>Redhawk schrieb:</p>
<blockquote>
<pre><code>Form1-&gt;Code...
</code></pre>
</blockquote>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047927</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:56:12 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:57:38 GMT]]></title><description><![CDATA[<p>Nein. Nix Mehrfachvererbung.<br />
Wenn ich dann die Instanze im &quot;Form1-&gt;OnCloseQuery&quot;-Event durch</p>
<pre><code>delete m_code;
</code></pre>
<p>lösche, dürfte das doch genügen? Weiß zumindest nicht wo der Destructor von TForm zu finden ist. Brauche ich sicher auch gar nicht.<br />
Danke schon mal für die schnelle Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047928</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 17:58:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>@ Redhawk : bitte niemals OnCreate oder OnDestroy benutzen. Stattdessen Konstruktor und Destruktor benutzen.<br />
Den TForm-Destruktor mußt du noch selber hinschreiben, muß so aussehen :</p>
<pre><code class="language-cpp">void __fastcall ~TForm1();
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047929</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 29 Apr 2006 17:58:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 18:05:18 GMT]]></title><description><![CDATA[<p>Alles klar.<br />
Danke dir.</p>
<p>Bis bald.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047931</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Sat, 29 Apr 2006 18:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 18:45:11 GMT]]></title><description><![CDATA[<p>Wenn ich die Mehrfachvererbunf nutze dann kann ich grundsätzlich mit</p>
<p>Form1-&gt;CodeGrün...<br />
Form1-&gt;CodeRot...</p>
<p>oder sonstewas darauf zugreifen und das sind PublicMethoden der Klasse TCode</p>
<p>Oder habe ich das jetzt komplett falsch verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047946</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Sat, 29 Apr 2006 18:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sat, 29 Apr 2006 18:49:26 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ja aber das war so nicht vom OP gewollt. Wär ich auch nie drauf gekommen ,das der OP Mehrfahcvererbung hätte haben wollen... meine Lösung (die der OP ja auch bestätigt hat) ist mir doch aufgrund der Frage viel naheliegender.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047952</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 29 Apr 2006 18:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sun, 30 Apr 2006 11:44:22 GMT]]></title><description><![CDATA[<p>Hallo. Habe doch noch eine Frage.<br />
Konnte eben erst testen.<br />
Ich kann die Klasse jetzt durch</p>
<pre><code>Form1-&gt;Code-&gt;...
</code></pre>
<p>aufrufen.<br />
Wenn ich das Programm starte und etwas in eine Variable dieser Klasse schreiben möchte, gibt es eine Fehlermeldung.<br />
Ist auch logisch. Wurde ja noch kein Speicher reserviert.<br />
An welcher Stelle muss ich nun folgende Zeile einfügen.</p>
<pre><code>m_code = new TCode;
</code></pre>
<p>Im Konstructor müsste ich noch eine TComponent mit übergeben, geht da auch NULL?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048280</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Sun, 30 Apr 2006 11:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sun, 30 Apr 2006 11:53:55 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>da du nicht veraten hast was denn TCode überhaupt macht, von welcher Klasse es abgeleitet ist oder was der Parameter des Konstruktors bedeutet, kann ich da nur allgemein sagen :<br />
Ich geh davon aus, das du von TComponent abgeleitet hast und der Parameter also der von der VCL vorgegebene <em>TComponent</em> Owner* ist. In diesem Fall kannst du durchaus NULL übergeben, dnn bist du selber für das Löschen der Instanz verantwortlich, zum Beispiel im Destruktor.<br />
Wenn du aber zum Beispiel <em>this</em> angibst, ist die Fenster-Instanz selber für das Löschen der Code-Instanz verantwortlich, wenn das Form gelöscht wird. Dann braucht du im Konstruktor nichts manuell löschen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048286</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 30 Apr 2006 11:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sun, 30 Apr 2006 18:43:51 GMT]]></title><description><![CDATA[<p>In der TCode Klasse sind nur selbst geschriebene Funktionen enthalten. Ich benutze dort keinerlei Objekte. Ist reines c. Mit der TComponent meinte ich den Konstruktor des Formulars. Ich war halt der Meinung, dass ich in den Konstruktor des Formulars</p>
<pre><code>void __fastcall TForm::TForm(owner)
{
  m_code = new TCode;
}
</code></pre>
<p>schreiben müsse, damit ich die Variable im Destruktor wieder richtig löschen kann. Jedoch ist dieses &quot;owner&quot; vom Typ TComponent, bzw. von dieser Klasse. Und wenn ich NULL für &quot;owner&quot; übergeben möchte, meckert er rum.</p>
<p>Mittlerweile habe ich mir Funktionen geschrieben, die dann die verschiedenen Funktionen der TCode-Klasse aufrufen. Somit kann ich auch immer über Form1-&gt;... darauf zugreifen. Ist nicht ganz so schön, aber funst. Möchte aber trotzdem wissen, wie das sauber zu lösen geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048563</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Sun, 30 Apr 2006 18:43:51 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Sun, 30 Apr 2006 18:48:29 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p><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="😕"
    /><br />
Wenn du in deiner TCode-Klasse keinen eigenen Konstruktor-Parameter vom Typ TComponent hast, was hat denn das dann mit der Klasse TForm und desen Instanz zu tun? <strong>Wo</strong> willst du du welchen Owner (auf 0) setzen?<br />
Der Owner des Forms selber beeinflußt dein m_code nicht im geringsten, den solltest du weder verändern noch an untergeordnete Objekte weitergeben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048565</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 30 Apr 2006 18:48:29 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Mon, 01 May 2006 09:46:12 GMT]]></title><description><![CDATA[<p>Der Konstruktor von TForm existiert doch bereits im public-Teil. Ist wahrscheinlich Standart:</p>
<pre><code>.
.
.
public:
  __fastcall TForm1 (TComponent* Owner);
.
.
.
</code></pre>
<p>Wenn ich nun im Konstructor etwas eintragen möchte, schreibe ich doch:</p>
<pre><code>__fastcall TForm1::TForm1(Keine Ahnung)
{
.
.
.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1048780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048780</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Mon, 01 May 2006 09:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Mon, 01 May 2006 09:56:16 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>nein du darfst die Definition Standard-Konstruktor von TForm <strong>nicht</strong> verändern. Dafür gibt es auch keinen Grund! Was willst du denn damit bezwecken?</p>
<p>Du darfst der Implementation des Konstruktor etwas hinzufügen, oder die Initialisierungsliste erweiteren.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048785</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 01 May 2006 09:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Mon, 01 May 2006 10:19:29 GMT]]></title><description><![CDATA[<p>Akari, kümmere dich wieder um die anderen Beiträge. Ich bin noch nicht so weit. Muss mich erst mal wieder etwas mehr belesen. Trotzdem danke für deine Geduld :(.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048798</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Mon, 01 May 2006 10:19:29 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Mon, 01 May 2006 10:29:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich empfehle dir zum Lesen zum Beispiel das <a href="http://tutorial.schornboeck.net/oop.htm" rel="nofollow">hier</a>.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048807</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 01 May 2006 10:29:53 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und ihre Implementierung on Tue, 02 May 2006 07:40:27 GMT]]></title><description><![CDATA[<p>Super, Danke.<br />
Jetzt kann ich mein Wissen aus dem Studium wieder auffrischen :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049340</guid><dc:creator><![CDATA[Redhawk]]></dc:creator><pubDate>Tue, 02 May 2006 07:40:27 GMT</pubDate></item></channel></rss>