<?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[Frame, Mehrfachvererbung: Pointer zu Componenten NULL]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe einen Frame im Designer entworfen und soweit klappte auch alles ganz gut.</p>
<p>Nun wollte ich allerdings, dass dieser Frame auch noch ein interface implementiert. Da es ja in C++ kein extra Schlüsselwort hierfür gibt, habe ich das ganze als abstrakte Klasse realisiert:</p>
<pre><code class="language-cpp">class EinInterface
{
  public:
    virtual void machWas() = 0;
};
</code></pre>
<p>Mein Frame ist zuerst von TFrame, dann von EinInterface abgeleitet (public EinInterface).</p>
<p>Das ganze verursachte keine Compilerfehler, doch das Erwachen kam zur Laufzeit, alle Zeiger auf Komponenten (per Designer hinzugefügt) in meinem Frame hatten NULL Werte und somit flogen mir die Speicherzugriffsverletzungen um die Ohren.</p>
<p>Woran kann das liegen? Mache ich evtl. etwas falsch?</p>
<p>Vielen Dank im Voraus.</p>
<p>Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206646/frame-mehrfachvererbung-pointer-zu-componenten-null</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 03:38:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206646.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Feb 2008 08:49:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 10:14:43 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe einen Frame im Designer entworfen und soweit klappte auch alles ganz gut.</p>
<p>Nun wollte ich allerdings, dass dieser Frame auch noch ein interface implementiert. Da es ja in C++ kein extra Schlüsselwort hierfür gibt, habe ich das ganze als abstrakte Klasse realisiert:</p>
<pre><code class="language-cpp">class EinInterface
{
  public:
    virtual void machWas() = 0;
};
</code></pre>
<p>Mein Frame ist zuerst von TFrame, dann von EinInterface abgeleitet (public EinInterface).</p>
<p>Das ganze verursachte keine Compilerfehler, doch das Erwachen kam zur Laufzeit, alle Zeiger auf Komponenten (per Designer hinzugefügt) in meinem Frame hatten NULL Werte und somit flogen mir die Speicherzugriffsverletzungen um die Ohren.</p>
<p>Woran kann das liegen? Mache ich evtl. etwas falsch?</p>
<p>Vielen Dank im Voraus.</p>
<p>Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463778</guid><dc:creator><![CDATA[barristan]]></dc:creator><pubDate>Wed, 27 Feb 2008 10:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 10:19:54 GMT]]></title><description><![CDATA[<p>Versuche Mehrfachvererbung zusammen mit VCL-Klassen zu vermeiden. Das ist eigentlich nur dann ein Problem wenn man von mehreren VCL-Klassen erben will (verboten), kann aber auch sonst Probleme bereiten.<br />
Du könntest doch einfach eine Klassse von TFrame ableiten, der du dann wiederum deine rein virtuelle Methode verpasst. Dann hast du ja dein Interface. Alle weiteren Klassen leitst du dann davon ab. Damit vermeidest du hier Mehrfachvererbung.<br />
Das Problem kann natürlich auch woanders liegen. Das kann ich aber mangels weitern Code nicht beurteilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463828</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 27 Feb 2008 10:19:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 11:22:30 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Dann wären aber alle Klassen, die das Interface implementieren auch Frames und das will ich nicht, es gibt Klassen, die das Interface implementieren und nichts mit der GUI zu tun haben.</p>
<p>Und was ist, wenn ein Form + Frame mal dieses interface implementieren soll? Das wäre dann ja völlig ausgeschlossen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463869</guid><dc:creator><![CDATA[barristan]]></dc:creator><pubDate>Wed, 27 Feb 2008 11:22:30 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 11:52:25 GMT]]></title><description><![CDATA[<p>Kannst Du denn nicht ein Memberobjekt in Dein TFrame aufnehmen welches die Schnittstelle implementiert? Wenn GUI und Deine Schnittstelle sowieso nichts miteinander zu tun haben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463899</guid><dc:creator><![CDATA[witte_]]></dc:creator><pubDate>Wed, 27 Feb 2008 11:52:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 12:17:24 GMT]]></title><description><![CDATA[<p>Ja, dann habe ich eine Klasse, die ich normal nicht brauche, aber gut wenns anders nicht geht. Was mich halt verwirrt ist, dass keine Compilerfehler kommen.</p>
<p>Die Zwischenklasse hätte dann aber wieder was mit der GUI zu tun, da sie einen Pointer auf den Frame benötigt, um arbeiten zu können.</p>
<p>Also siehts nach nem Bug in der VCL aus?</p>
<p>mfg</p>
<p>Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463937</guid><dc:creator><![CDATA[barristan]]></dc:creator><pubDate>Wed, 27 Feb 2008 12:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 12:54:07 GMT]]></title><description><![CDATA[<p>barristan schrieb:</p>
<blockquote>
<p>Also siehts nach nem Bug in der VCL aus?</p>
</blockquote>
<p>Wissen wir nicht, wir können keine Ferndiagnosen stellen. Du hast doch nicht irgend eine Member-/Baseinitalisierung entfernt oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463974</guid><dc:creator><![CDATA[wiite_]]></dc:creator><pubDate>Wed, 27 Feb 2008 12:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 12:55:38 GMT]]></title><description><![CDATA[<p>Wir verwenden oft Mehrfachvererbungen auch im Zusammenspiel mit VCL-Klassen.<br />
Dabei wählen wir genau denselben Weg, den Du auch gewählt hast, also rein<br />
virtuelle Klasse, die dann von einer Form geerbt (= implementiert) wird.</p>
<p>Die von Dir beschriebenen Probleme habe ich dabei noch nicht beobachten<br />
können. Ich habe das schon mit BCB6, BCB2006 und BCB2007 verwendet - ohne<br />
Probleme.</p>
<p>Mit der Behauptung &quot;Bug in der VCL&quot; o.ä. bin ich übrigens im allgemein<br />
etwas zurückhaltend. Es gibt zwar unbestritten einige Bugs, aber in der<br />
Regel ist es klüger, den Fehler im eigenen Code zu suchen. Leider findet<br />
man ihn dort auch meist. <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/1463977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463977</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 27 Feb 2008 12:55:38 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 14:36:27 GMT]]></title><description><![CDATA[<p>wiite schrieb:</p>
<blockquote>
<p>Wissen wir nicht, wir können keine Ferndiagnosen stellen. Du hast doch nicht irgend eine Member-/Baseinitalisierung entfernt oder so?</p>
</blockquote>
<p>Die Member, die NULL sind, sind in</p>
<pre><code class="language-cpp">__published:	// IDE-managed Components
</code></pre>
<p>also sollte sich die IDE drum kümmern, das tut sie auch, solange ich nur vom Frame ableite, sobald ich von meinem Interface ableite, sind alle IDE-managed Components NULL.</p>
<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Wir verwenden oft Mehrfachvererbungen auch im Zusammenspiel mit VCL-Klassen.<br />
Dabei wählen wir genau denselben Weg, den Du auch gewählt hast, also rein<br />
virtuelle Klasse, die dann von einer Form geerbt (= implementiert) wird.</p>
</blockquote>
<p>Auch bei Frames nicht?</p>
<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Die von Dir beschriebenen Probleme habe ich dabei noch nicht beobachten<br />
können. Ich habe das schon mit BCB6, BCB2006 und BCB2007 verwendet - ohne<br />
Probleme.</p>
</blockquote>
<p>Ich verwende BCB2006 und da ists der Fall</p>
<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Mit der Behauptung &quot;Bug in der VCL&quot; o.ä. bin ich übrigens im allgemein<br />
etwas zurückhaltend. Es gibt zwar unbestritten einige Bugs, aber in der<br />
Regel ist es klüger, den Fehler im eigenen Code zu suchen. Leider findet<br />
man ihn dort auch meist.</p>
</blockquote>
<p>Natürlich kanns an meinem Code auch liegen, nur warum kommt dann kein Compilerfehler?</p>
<p>Wenn ich beispielsweise zuerst vom Interface und dann im Frame ableite, kommt eine Fehlermeldung, dass Frames immer zuerst von TFrame abgeleitet werden müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1464061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1464061</guid><dc:creator><![CDATA[barristan]]></dc:creator><pubDate>Wed, 27 Feb 2008 14:36:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 14:44:45 GMT]]></title><description><![CDATA[<p>barristan schrieb:</p>
<blockquote>
<p>[...] solange ich nur vom Frame ableite, sobald ich von meinem Interface ableite, sind alle IDE-managed Components NULL.</p>
</blockquote>
<p>Möglicherweise würde es helfen, wenn Du mal ein wenig mehr Quellcode zeigen würdest, z.B. Header-Datei, Constructor etc.</p>
<p>barristan schrieb:</p>
<blockquote>
<p>Auch bei Frames nicht?</p>
</blockquote>
<p>Mir fallen im Moment nur Abkömmlinge von TForm ein. Könnte aber sein, dass ich das früher mal für Frames verwendet habe.</p>
<p>barristan schrieb:</p>
<blockquote>
<p>Natürlich kanns an meinem Code auch liegen, nur warum kommt dann kein Compilerfehler?</p>
</blockquote>
<p>Vielleicht weil der Compiler nur überprüfen kann ob der Code C/C++ konform ist (Syntax), nicht<br />
aber ob er beispielsweise Sinnlosigkeiten enthält (Semantik)?<br />
Leider habe ich selten Syntax-Fehler und meine Programme tun öfters zu Beginn nicht das, was ich wollte.</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1464073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1464073</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 27 Feb 2008 14:44:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Wed, 27 Feb 2008 15:31:21 GMT]]></title><description><![CDATA[<p>Es wird nichts bringen, wenn ich hier weiteren Quellcode poste, weil ich alles wichtige zur Thematik bereits gesagt habe.</p>
<p>Wo kann ich denn Fehler machen?</p>
<p>a) Klasse falsch definieren (hab ja den Quellcode gepostet, nur die Namen sind etwas anders)<br />
b) Ableitung falsch machen (auch das habe geschrieben public EinInterface)<br />
c) Virtualle Funktionen nicht im Frame implementiert (das motzt der Compiler sofort an, wenn ich versuche eine Instanz der Klasse zu erzeugen und daher habe ich das auch gemacht)</p>
<p>Ansonsten hat sich an meinem bischerigen Quellext nichts geändert, der ist exakt so wie vorher.</p>
<p>Wenn ich das ,public EinInterface</p>
<p>auskommentiere, funktionierts, wenn ichs drinlasse, werden die von der IDE verwalteten Komponenten nicht im Heap angelegt. Und dafür ist die IDE zuständig. Ist ja nicht so, dass ich vorher den Komponenten NULL zuweise.</p>
<p>edit:<br />
mir ist gerade aufgefallen, dass nicht alle Pointer der Komponenten auf NULL zeigen, einige haben eine gültige Adresse, andere wiederum nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1464109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1464109</guid><dc:creator><![CDATA[barristan]]></dc:creator><pubDate>Wed, 27 Feb 2008 15:31:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Thu, 28 Feb 2008 16:51:33 GMT]]></title><description><![CDATA[<p>Hast Du eigentlich schon mal das Ganze mit einem Formular<br />
anstatt einem Frame ausprobiert?</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1464896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1464896</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Thu, 28 Feb 2008 16:51:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Fri, 29 Feb 2008 17:54:04 GMT]]></title><description><![CDATA[<p>Hab das selbe Problem.<br />
Mit 2 Forms geht es, nur nicht mit einem Frame.<br />
Da scheint die Kommunikation zur Form, in der es sich befindet, immer wieder Speicherverletzungen herbeizuführen.</p>
<p>Unit2.h:</p>
<pre><code>public:		// User declarations
	__fastcall TFrame2(TComponent* Owner);
	void bla();
};
</code></pre>
<p>Unit2.cpp:</p>
<pre><code>void TFrame2::bla() {
	Button1-&gt;Caption=&quot;a&quot;;
  }
</code></pre>
<p>Unit1.h:</p>
<pre><code>#include &quot;Unit2.h&quot;
</code></pre>
<p>Unit1.cpp:</p>
<pre><code>void __fastcall TForm1::Button1Click(TObject *Sender)
{
Frame2-&gt;bla();
}
</code></pre>
<p>Das gibt eine schöne Speicherzugriffsverletzung.<br />
Für Lösungevorschläge wäre ich sehr sehr dankbar.<br />
Der Compiler sollte für so etwas aber wenigstens eine Warnung rausgeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Btw... ein Bug im Compiler kann ich eigentlich ausschließen.<br />
Hab es mit Borland C++ Builder 6 Enterprise und CodeGear C++ Builder 2007 Enterprise getestet =&gt; Selbes deprimierendes Ergebniss.<br />
Google hilft leider auch nicht weiter...</p>
<p>Mfg, maZe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465703</guid><dc:creator><![CDATA[maehze]]></dc:creator><pubDate>Fri, 29 Feb 2008 17:54:04 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Fri, 29 Feb 2008 18:33:50 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wo gibt es da eine Speicherverletzung? Beim Starten des Programms oder beim Klick auf den Button?<br />
Bei letzerem wäre doch die Frage ob hinter Frame2 überhaupt eine gültige Instanz steht? Denn das Erstellen der automatisch generierten Instanzen kann man ja in den Projektoptionen ein- und ausschalten.</p>
<p>Ich habe diesen Test jedenfalls mit meinem BCB5 gemacht und konnte keinerlei Probleme feststellen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465720</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 29 Feb 2008 18:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Sat, 01 Mar 2008 01:57:52 GMT]]></title><description><![CDATA[<p>Beim klicken des Buttons, als wenn ich von Form1 auf Funkionen von Frame2 zugrifen will, passiert es <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=":/"
      alt="😕"
    /></p>
<p>Btw.: Mein OS: Vista</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465879</guid><dc:creator><![CDATA[maehze]]></dc:creator><pubDate>Sat, 01 Mar 2008 01:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Sat, 01 Mar 2008 01:59:22 GMT]]></title><description><![CDATA[<p>Ein Projekt mit einer Form und einem Frame darin erstellen.<br />
In den Frame ein Shape und in die Form ein Button.<br />
Jetzt mal als onClick-Anweisung des Buttons angeben: Frame2-&gt;Shape1-&gt;Top--;</p>
<p>dann kommt die Verletzung (bei mir...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465880</guid><dc:creator><![CDATA[maehze]]></dc:creator><pubDate>Sat, 01 Mar 2008 01:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Sat, 01 Mar 2008 02:07:04 GMT]]></title><description><![CDATA[<p><a href="http://img207.imageshack.us/img207/5513/03012008030407hz6.png" rel="nofollow">http://img207.imageshack.us/img207/5513/03012008030407hz6.png</a> &lt;--- screenshot</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465883</guid><dc:creator><![CDATA[maehze]]></dc:creator><pubDate>Sat, 01 Mar 2008 02:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Sat, 01 Mar 2008 22:00:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe das mal eben mit BDS 2006 Professional ausprobiert und überhaupt keine<br />
Probleme gehabt.</p>
<p>Ich bin folgendermaßen vorgegangen:<br />
1. Neues VCL-Projekt<br />
2. Neuen Frame innerhalb des Projekts mit 1 Button, 1 Label, 1 Edit<br />
3. Neue Header-Datei &quot;IDummy.h&quot; (s. unten)<br />
4. Frame von IDummy erben lassen<br />
5. Frame in Palette hinzufügen (lassen)<br />
6. Im Hauptformular Frame einfügen (MyFrame), außerdem 1 Button und 1 Memo<br />
7. Im Click-Ereignis des Buttons auf Frame-Komponenten zugreifen (s. unten)<br />
8. In der von IDummy geerbten Funktion foo() auf die Komponenten des Frames zugreifen (s. unten)</p>
<p>Hier noch ein wenig Source-Code:</p>
<p>IDummy.h</p>
<pre><code class="language-cpp">#ifndef IDummyH
#define IDummyH

class IDummy
{
   public:
      virtual void foo() = 0;
};

#endif
</code></pre>
<p>Header-Datei des Frames</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;

#include &lt;IDummy.h&gt;
//---------------------------------------------------------------------------
class TFrame2 : public TFrame, public IDummy
{
__published:
   TButton *Button1;
   TLabel *Label1;
   TEdit *Edit1;
public:
   __fastcall TFrame2(TComponent* Owner);

   virtual void foo();
};
//---------------------------------------------------------------------------
extern PACKAGE TFrame2 *Frame2;
//---------------------------------------------------------------------------
#endif
</code></pre>
<p>OnClick des Buttons auf Hauptformular</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
   IDummy* dummy = MyFrame;
   dummy-&gt;foo();
   Memo1-&gt;Lines-&gt;Add(MyFrame-&gt;Button1-&gt;Name + &quot;::Caption = &quot; + MyFrame-&gt;Button1-&gt;Caption);
   Memo1-&gt;Lines-&gt;Add(MyFrame-&gt;Label1-&gt;Name + &quot;::Caption = &quot; + MyFrame-&gt;Label1-&gt;Caption);
   Memo1-&gt;Lines-&gt;Add(MyFrame-&gt;Edit1-&gt;Name + &quot;::Text = &quot; + MyFrame-&gt;Edit1-&gt;Text);
}
</code></pre>
<p>Implementierung von IDummy::foo() im Frame</p>
<pre><code class="language-cpp">void TFrame2::foo()
{
   AnsiString componentProperties = &quot;&quot;;
   componentProperties = Button1-&gt;Name + &quot;::Caption = &quot; + Button1-&gt;Caption + &quot;\r\n&quot;
                         + Label1-&gt;Name + &quot;::Caption = &quot; + Label1-&gt;Caption + &quot;\r\n&quot;
                         + Edit1-&gt;Name + &quot;::Text = &quot; + Edit1-&gt;Text;
   ShowMessage(componentProperties);
}
</code></pre>
<p>Keine Zugriffsverletzung, nichts um die Ohren geflogen.</p>
<p>Ich habe auch mal eine Instanz des Frames dynamisch per Code erstellt. Auch<br />
keine Probleme.</p>
<p>Irgendwas habt ihr wohl anders gemacht. Fragt sich bloß was.</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466362</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Sat, 01 Mar 2008 22:00:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Sun, 02 Mar 2008 21:04:02 GMT]]></title><description><![CDATA[<p>hier mal das projekt, bei dem bei mir der fehler kommt:<br />
<a href="http://egaming-bonn.de/users/maze/moo.7z" rel="nofollow">http://egaming-bonn.de/users/maze/moo.7z</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466941</guid><dc:creator><![CDATA[maehze]]></dc:creator><pubDate>Sun, 02 Mar 2008 21:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Sun, 02 Mar 2008 21:13:07 GMT]]></title><description><![CDATA[<p>Wie soll das funktionieren?<br />
Du verwendest nicht die Variable Deines Frames auf dem Formular,<br />
sondern die im Frame deklarierte globale Variable (die meiner Meinung<br />
nach standardmäßig nicht erstellt werden sollten).</p>
<p>Header-Datei Deines Formulars:</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:
	TFrame2 *Frame21; // &lt;---------- Hier die Variable, die Du verwenden solltest
	TButton *Button1;
	void __fastcall Button1Click(TObject *Sender);
public:
	__fastcall TForm1(TComponent* Owner);
};
</code></pre>
<p>CPP Deines Formulars:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
Frame2-&gt;Button1-&gt;Caption=&quot;test&quot;;  // &lt;------- Falsch verwendet
}
</code></pre>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466951</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Sun, 02 Mar 2008 21:13:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Mon, 03 Mar 2008 14:30:46 GMT]]></title><description><![CDATA[<p>Erstes Interface:</p>
<pre><code class="language-cpp">class IBla
{
	public:
  	virtual void machWas() = 0;
};
</code></pre>
<p>Zweites Interface:</p>
<pre><code class="language-cpp">class IBlub
{
	public:
		virtual void machMehr() = 0;
};
</code></pre>
<p>Frame 1:</p>
<pre><code class="language-cpp">class TfrmOne : public TFrame, public IBla
{
__published:	// IDE-managed Components
	TMemo *Memo1;
	TLabel *Label1;
	TEdit *Edit1;
	TListBox *ListBox1;
	TPanel *Panel1;
private:	// User declarations
public:		// User declarations
	__fastcall TfrmOne(TComponent* Owner);
	virtual void machWas();
};
</code></pre>
<p>Frame 2:</p>
<pre><code class="language-cpp">class TfrmTwo : public TfrmOne, public IBlub
{
__published:	// IDE-managed Components
	TListBox *ListBox2;
	TRadioButton *RadioButton1;
private:	// User declarations
public:		// User declarations
	__fastcall TfrmTwo(TComponent* Owner);
	virtual void machMehr();
};
</code></pre>
<p>Frames mit paar Komponenten befüllen und auf ein Form knallen. Was kommt? Er kann die Klasse TfrmTwo nicht finden.</p>
<p>Entferne ich nun &quot;,public IBlub&quot; von TfrmTwo, läuft das Programm einwandfrei. Entferne ich &quot;,public IBla&quot; von TfrmOne, aber ändere nichts an TfrmTwo, läufts auch. Anscheinend hat Borland Probleme sobald man bereits bei einem Parent Frame ein Interface implementiert hat und nun bei einem Child Frame ein anderes zusätzlich implementieren möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467342</guid><dc:creator><![CDATA[barristan]]></dc:creator><pubDate>Mon, 03 Mar 2008 14:30:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Mon, 03 Mar 2008 14:55:19 GMT]]></title><description><![CDATA[<p>... was allerdings jetzt ein völlig anderes Problem als das eingangs beschriebene ist.<br />
Vielleicht komme ich heute abend mal dazu das nachzustellen.</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467368</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 03 Mar 2008 14:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Mon, 03 Mar 2008 15:29:27 GMT]]></title><description><![CDATA[<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Wie soll das funktionieren?<br />
Du verwendest nicht die Variable Deines Frames auf dem Formular,<br />
sondern die im Frame deklarierte globale Variable (die meiner Meinung<br />
nach standardmäßig nicht erstellt werden sollten).</p>
<p>Header-Datei Deines Formulars:</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:
	TFrame2 *Frame21; // &lt;---------- Hier die Variable, die Du verwenden solltest
	TButton *Button1;
	void __fastcall Button1Click(TObject *Sender);
public:
	__fastcall TForm1(TComponent* Owner);
};
</code></pre>
<p>CPP Deines Formulars:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
Frame2-&gt;Button1-&gt;Caption=&quot;test&quot;;  // &lt;------- Falsch verwendet
}
</code></pre>
<p>Gruß</p>
<p>Alexander</p>
</blockquote>
<p>mit 2 forms geht das aber... warum nicht mit frame &amp; form ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467402</guid><dc:creator><![CDATA[maehze]]></dc:creator><pubDate>Mon, 03 Mar 2008 15:29:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Mon, 03 Mar 2008 15:34:14 GMT]]></title><description><![CDATA[<p>maehze schrieb:</p>
<blockquote>
<p>mit 2 forms geht das aber... warum nicht mit frame &amp; form ??</p>
</blockquote>
<p>Darüber solltest Du Dir mal in einer ruhigen Minute Gedanken machen.<br />
Kleine Denkanstöße:<br />
- Was bezweckt man eigentlich mit Frames?<br />
- Hast Du schon mal versucht 4 identische Forms auf einer Form im Designer abzulegen?</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467406</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 03 Mar 2008 15:34:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Mon, 03 Mar 2008 23:02:47 GMT]]></title><description><![CDATA[<p>barristan schrieb:</p>
<blockquote>
<p>Er kann die Klasse TfrmTwo nicht finden.<br />
Entferne ich nun &quot;,public IBlub&quot; von TfrmTwo, läuft das Programm einwandfrei.</p>
</blockquote>
<p>Kann ich mit BCB2006pro nachvollziehen. In der Tat wird ordnungsgemäß kompiliert, aber zur Laufzeit<br />
wird die Klasse des vom ersten Frame erbenden Frames nicht gefunden.<br />
Wäre noch interessant herauszufinden, ob beim BCB2007 das Problem auch noch besteht.</p>
<p>Glücklicherweise habe ich Frames noch nie in dieser Form verwenden müssen.</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467658</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 03 Mar 2008 23:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Tue, 04 Mar 2008 10:25:28 GMT]]></title><description><![CDATA[<p>Das Problem besteht auch beim BCB2007. Ich denke man könnt den Fall mal bei <a href="http://qc.codegear.com/wc/qcmain.aspx?p=15" rel="nofollow">QualityCentral</a> reinstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467807</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 04 Mar 2008 10:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to Frame, Mehrfachvererbung: Pointer zu Componenten NULL on Tue, 04 Mar 2008 11:08:33 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Das Problem besteht auch beim BCB2007. Ich denke man könnt den Fall mal bei <a href="http://qc.codegear.com/wc/qcmain.aspx?p=15" rel="nofollow">QualityCentral</a> reinstellen.</p>
</blockquote>
<p>Ja ja, man muss nur feste dran glauben, dass es hilft.<br />
Mein Bug-Report ist mittlerweile 6 Jahre alt. Passiert ist da allerdings überhaupt nichts...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467839</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 04 Mar 2008 11:08:33 GMT</pubDate></item></channel></rss>