<?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[Zur Laufzeit Objekt erstellen]]></title><description><![CDATA[<p>Morgen.</p>
<p>Ich weiss wie man neue Komponenten erstellt, aber ich verstehe momentan nicht folgenden Delphi Code.</p>
<p>Es gibt von dem Block verschiedene Dinge. Wie Linien, Rechtecke und Kreise.<br />
Ich möchte einen vorhandenen Block kopieren, aber komme mit dem Delphi Syntax nicht klar.</p>
<p>Normalerweise:</p>
<pre><code>var
  L: Block;
begin
  L := Line.Create(nil);
</code></pre>
<p>Daraus mache ich in CBuilder</p>
<pre><code class="language-cpp">Block *L = new Ddoc::Line(BlockEditor-&gt;Document);
</code></pre>
<p><em>BlockEditor-&gt;Document</em> sagt im das er in dieser Komponente plaziert werden soll und klappt auch</p>
<p>Probleme habe ich jetzt mit diesem Code</p>
<pre><code>BlockClass = class of Block;

procedure Block.CopyFrom(Source: Block);
var
  S: Block;
begin
  S := BlockClass(Source.ClassType).Create(nil);
</code></pre>
<p>Wie hat die letzte Zeile denn in C++ auszusehen? Kann da wer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129190/zur-laufzeit-objekt-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 22:29:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129190.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Dec 2005 09:49:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 09:49:03 GMT]]></title><description><![CDATA[<p>Morgen.</p>
<p>Ich weiss wie man neue Komponenten erstellt, aber ich verstehe momentan nicht folgenden Delphi Code.</p>
<p>Es gibt von dem Block verschiedene Dinge. Wie Linien, Rechtecke und Kreise.<br />
Ich möchte einen vorhandenen Block kopieren, aber komme mit dem Delphi Syntax nicht klar.</p>
<p>Normalerweise:</p>
<pre><code>var
  L: Block;
begin
  L := Line.Create(nil);
</code></pre>
<p>Daraus mache ich in CBuilder</p>
<pre><code class="language-cpp">Block *L = new Ddoc::Line(BlockEditor-&gt;Document);
</code></pre>
<p><em>BlockEditor-&gt;Document</em> sagt im das er in dieser Komponente plaziert werden soll und klappt auch</p>
<p>Probleme habe ich jetzt mit diesem Code</p>
<pre><code>BlockClass = class of Block;

procedure Block.CopyFrom(Source: Block);
var
  S: Block;
begin
  S := BlockClass(Source.ClassType).Create(nil);
</code></pre>
<p>Wie hat die letzte Zeile denn in C++ auszusehen? Kann da wer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939412</guid><dc:creator><![CDATA[delfine]]></dc:creator><pubDate>Sun, 11 Dec 2005 09:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 10:04:18 GMT]]></title><description><![CDATA[<p>Der Delphi Code sagt mir nicht viel, was soll es denn bewirken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939422</guid><dc:creator><![CDATA[Gap]]></dc:creator><pubDate>Sun, 11 Dec 2005 10:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 10:15:15 GMT]]></title><description><![CDATA[<p>ClassType gehört wohl zu CBuilder/Delphi: <em>&quot;ClassType gibt die Klassenreferenz der Objektklasse zurück.&quot;</em></p>
<p>Wie schon gesagt kann der Block eine Linie,Rechteck oder Kreis sein. Das sind seine Klassen und dieses ClassType erzeugt einen neuen Block mit der Klasse des im Funktionskopf übergebenen Musterblock den ich ja kopieren möchte und anschliessend bearbeiten.</p>
<p>Das heisst, ich muss nicht wissen von welcher Klasse der übergebene Block kommt, um ihn entsprechend zu erstellen, sondern er macht gleich daraus den richtigen Block mit der richtigen Klasse von <em>Block Source</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939427</guid><dc:creator><![CDATA[delfine]]></dc:creator><pubDate>Sun, 11 Dec 2005 10:15:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 10:35:07 GMT]]></title><description><![CDATA[<p>Die erste Zeile ist in Ordnung, nunja, jedenfalls kein compiler Fehler <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 />
Aber wie kann ich das jetzt in Zeile 2 einbinden? So wie jetzt ist es falsch...</p>
<pre><code class="language-cpp">TClass ClassRef = Source-&gt;ClassType();
Block *block = new (ClassRef*)(BlockEditor-&gt;Document);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/939438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939438</guid><dc:creator><![CDATA[delfine]]></dc:creator><pubDate>Sun, 11 Dec 2005 10:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 13:36:27 GMT]]></title><description><![CDATA[<p>Ist Delphi soweit CBuilder überlegen das das garnicht geht? Wau! Ich glaub ich steige lieber komplett um. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/939553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939553</guid><dc:creator><![CDATA[delfine]]></dc:creator><pubDate>Sun, 11 Dec 2005 13:36:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 14:32:11 GMT]]></title><description><![CDATA[<p>Du wirfst hier Codebrocken von völlig unbekannten Klassen oder Komponenten hin und wunderst dich, dass dir niemand helfen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939570</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 11 Dec 2005 14:32:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Laufzeit Objekt erstellen on Sun, 11 Dec 2005 17:18:12 GMT]]></title><description><![CDATA[<p>Hat das nicht ausgereicht? *verdutzt guck* Ich wüsste jetzt garnicht was da jetzt noch schreiben müsste.<br />
Man bekommt eine Komponente und soll anhand dieser ein Dublikat erstellen.</p>
<p>Wie man dessen Klasse rausbekommt habe ich schon rausgefunden</p>
<pre><code class="language-cpp">TClass ClassRef = Source-&gt;ClassType();
AnsiString Name = ClassRef-&gt;ClassName();
</code></pre>
<p>Aber was fange ich damit an, um eine Komponente dieser Klasse zu erstellen?</p>
<pre><code>Block = class(TComponent)
end;

BlockClass = class of Block;

Rect = class(Block)
end;

Ellipse = class(Block)
end;
</code></pre>
<p>In C++ mach ich dann entweder</p>
<pre><code class="language-cpp">Block *L = new Ddoc::Rect(BlockEditor-&gt;Document);
Block *L = new Ddoc::Ellipse(BlockEditor-&gt;Document);
</code></pre>
<p>Und ich würde jetzt gerne wissen, wie man das zusammenfassen kann, so das ich einen Block bekomme und egal ob er ein Rect oder Ellipse ist eine Kopie von erstellen kann. <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>
<p>Bitte bitte helfen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/939684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939684</guid><dc:creator><![CDATA[delfine]]></dc:creator><pubDate>Sun, 11 Dec 2005 17:18:12 GMT</pubDate></item></channel></rss>