<?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[Vererbung und Methodenaufrufe]]></title><description><![CDATA[<p>Auch auf die Gefahr hin mich extrem zu blamieren, stelle ich mal mein Problem dar. Ich bin noch nicht ganz in der Objektorientierten Prgrammierung angekommen. Komme aus der Assembler- und ST-Programmierung. Wollte nun meiner Funktion SystemLangRename() das Objekt (Formular) von ObjectDebug übergeben und auswerten lassen. Leider Klappt das nich ganz. Habe noch Probleme bei der Vererbung und bei der Übergabe an die Methode.<br />
Ich stelle mal den Quelltext hinein und würde mich freuen wenn mir einer helfen könnte. Bitte nicht auf mich herum hacken. Bin noch neu in der Objektorientierten Programmierung.</p>
<p>Headerdatei Langrename:</p>
<p>#ifndef LangRenameH<br />
#define LangRenameH</p>
<p>//---------------------------------------------------------------------------<br />
#include &lt;Classes.hpp&gt;<br />
#include &lt;Controls.hpp&gt;<br />
#include &lt;StdCtrls.hpp&gt;<br />
#include &lt;Forms.hpp&gt;<br />
#include &lt;Buttons.hpp&gt;<br />
#include &lt;Menus.hpp&gt;<br />
#include &lt;ComCtrls.hpp&gt;<br />
#include &lt;ExtCtrls.hpp&gt;<br />
//---------------------------------------------------------------------------<br />
#endif<br />
class LangRename<br />
{<br />
public:<br />
virtual void LangRename::SystemLangRename(TForm *pForm);<br />
};</p>
<p>CPP-Datei LangRename:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#pragma hdrstop
#include &lt;vcl.h&gt;
#include &quot;ObjectDebug.h&quot;
#include &quot;LangRename.h&quot;
#include &lt;XMLDoc.hpp&gt;
#pragma package(smart_init)
#include &quot;ObjectDebug.h&quot;
#define __SHOWNAMES__
//---------------------------------------------------------------------------
/*
Einlesen der XML-Datei mit der Sprachen- und Objekliste.
Suchalgorithmus findet in XML-Datei passenden Namen und gibt der Sprache
entsprechend einen AnsiString-Wert zurück. Bei LoadXMLDocument muss der
entsprechende Dateiname als String übergeben werden.
Bitte darauf achten, dass das Format der XML-Datei entsprechend ist.
Es ist darauf zu achten, dass der Objektname für die einzelnen Elmente
der selbe Name ist, der in der XML-Datei eingetragen ist. Es ist zu empfehlen,
zuerst die XML-Datei zu erweitern bevor Elemente einem Formular
hinzugefügt werden.
*/
AnsiString searchXMLFile(AnsiString ObjName, AnsiString Sprache, AnsiString returnXMLValue)
{

    int	bFound = 0;

	try
  		{
        _di_IXMLDocument XML = LoadXMLDocument(&quot;language.xml&quot;);
        _di_IXMLNodeList NodeList = XML-&gt;DocumentElement-&gt;ChildNodes;

  		int count = NodeList-&gt;Count;
  		for (int i=0; i&lt;count; i++)
    	{
    		_di_IXMLNode ValueNode = NodeList-&gt;Nodes[i];
    		String NodeId = (String)ValueNode-&gt;GetAttribute(&quot;id&quot;);
    		if (NodeId == ObjName)
      		{
      			returnXMLValue = ValueNode-&gt;ChildNodes-&gt;FindNode(Sprache)-&gt;NodeValue;
    			bFound = 1;
                break;
            }
    	}

        #ifdef __SHOWNAMES__
        if (bFound == 0)
        {
        	FormObjDebug-&gt;LB1-&gt;Items-&gt;Add( &quot;Name: &quot; + ObjName + &quot;  !!!Objekt konnte nicht in der XML-Datei gefunden werden!!!&quot; );
        }
         #endif

    	return returnXMLValue;
        }

    catch (...)
		{
        try
				{
                    if (Sprache == &quot;deu&quot;)
                    {
                        throw Exception(&quot;Sprachdatei wurde nicht gefunden!&quot;);
                    }

                    else
                    {
                        throw Exception(&quot;Language-file not found!&quot;);
                    }

                }

            catch (Exception &amp;exception)
				{
					Application-&gt;ShowException(&amp;exception);
				}
		}

   	return returnXMLValue;
}

//---------------------------------------------------------------------------
/*
Methode die durch den Konstroktor des Formulares aufgerufen wird.
*/
//---------------------------------------------------------------------------

void LangRename::SystemLangRename(TForm *pForm)
{
	/*
    Variablen zum Zwischenspeichern der Caption und des Objektnamens.
    Zusätzliche Variable zur Sprachenverwaltung.
    */

	AnsiString ObjName[50];
    AnsiString CaptionName[50];
    String Sprache = &quot;eng&quot;;
    int NumberMenu;
    int NumberItem;
    int zahl;

	//----------------------------------------------------------------------
    #ifdef __SHOWNAMES__
    FormObjDebug-&gt;Show();
    FormObjDebug-&gt;LB1-&gt;Clear();
    #endif
    //----------------------------------------------------------------------

	/*
    Zählung, Prüfung und Benennung der Objekte des Formulars.
    Jedes Objekt des Formulars wird geprüft ob es ein Bestandteil einer
    vorgegeben Klasse ist um es je nach Sprache zu benennen.
 	*/

    // Zählung der Objekte des Formulars
    for (int i=0; i&lt; pForm-&gt;ComponentCount;i++)

		{
            // Identifizierung des Objektnamens
            ObjName[i] = pForm-&gt;Components[i]-&gt;GetNamePath();

            // Cast von Components der Klasse TComponent
       	   	TComponent *comp = pForm-&gt;Components[i];

           	/* Dient zur Aufistung aller Objekte eines Formualrs in einem Fenster
          	#ifdef __SHOWNAMES__
    		FormObjDebug-&gt;LB1-&gt;Items-&gt;Add( &quot;Name: &quot; + ObjName[i] + &quot; Class: &quot; + Components[i]-&gt;ClassName());
            #endif
            */

            // Betreffend Objekte der Klasse TLabel
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TLabel&quot;))
            {
               	TLabel *pLabel = dynamic_cast&lt;TLabel *&gt;(comp);
            	if(pLabel != NULL)
            	{
	                CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pLabel-&gt;Caption );
                	pLabel-&gt;Caption = CaptionName[i];
                }
        	}

            // Betreffend Objekte der Klasse TButton
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TButton&quot;))
            {
            	TButton *pButton = dynamic_cast&lt;TButton *&gt;(comp);
                if(pButton != NULL)
                {
	                CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pButton-&gt;Caption);
                   	pButton-&gt;Caption = CaptionName[i];
                }

            }

            // Betreffend Objekte der Klasse TPopupMenu
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
			{
  				TPopupMenu *pPopupMenuObj = static_cast&lt;TPopupMenu *&gt;(comp);
  				NumberItem = pPopupMenuObj-&gt;Items-&gt;Count;
  				for (int j=0; j &lt; NumberItem; ++j)
  				{
    				TMenuItem *ItemToEdit = pPopupMenuObj-&gt;Items-&gt;Items[j];
    				AnsiString ItemName(ItemToEdit-&gt;GetNamePath());
    				ItemToEdit-&gt;Caption = searchXMLFile(ItemName, Sprache,ItemToEdit-&gt;Caption);
    			}
  			}

            // Betreffend Objekte der Klasse TTabControl
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TTabControl&quot;))
            {
                   	TTabControl *pTabControl;
                    int nCount, j;
                    String TabName;
                    pTabControl = (TTabControl *)pForm-&gt;Components[i];
                    nCount		= pTabControl-&gt;Tabs-&gt;Count;

                    if( nCount )
                    {
                    	for ( j=0; j&lt;nCount ; j++ )
                        {

                          	TabName = searchXMLFile(pTabControl-&gt;Tabs-&gt;Strings[j],Sprache,pTabControl-&gt;Tabs-&gt;Strings[j]);
                           	pTabControl-&gt;Tabs-&gt;Strings[j] = TabName;
          		        }
                    }
            }

            // Betreffend Objekte der Klasse TMainMenu
           	if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TMainMenu&quot;))
            {
                    TMainMenu *pMainMenuObj = static_cast&lt;TMainMenu *&gt;(comp);
  					NumberMenu = pMainMenuObj-&gt;Items-&gt;Count;
                   	for (int i=0; i &lt; NumberMenu; i++)
                    {
                        AnsiString ItemName;
    					TMenuItem *pItemToEdit = pMainMenuObj-&gt;Items-&gt;Items[i];
                        ItemName = pItemToEdit-&gt;GetNamePath();
    					pItemToEdit-&gt;Caption = searchXMLFile(ItemName, Sprache,pItemToEdit-&gt;Caption);

    					for (int j=0; j&lt;pItemToEdit-&gt;Count;j++)
                        {
                        	ItemName = pItemToEdit-&gt;Items[j]-&gt;GetNamePath();
        					pItemToEdit-&gt;Items[j]-&gt;Caption = searchXMLFile(ItemName, Sprache, pItemToEdit-&gt;Items[j]-&gt;Caption);
                        }
    	  			}
            }

            // Betreffend Objekte der Klasse TRadioButton
        	if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TRadioButton&quot;))
            {

            	TRadioButton *pRadioButton = dynamic_cast&lt;TRadioButton *&gt;(comp);
                if(pRadioButton != NULL)
                {
                	CaptionName[i] = searchXMLFile(ObjName[i], Sprache,pRadioButton-&gt;Caption);
                   	pRadioButton-&gt;Caption = CaptionName[i];
                }
			}

            // Betreffend Objekte der Klasse TCheckBox
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TCheckBox&quot;))
            {

            	TCheckBox *pCheckBox = dynamic_cast&lt;TCheckBox *&gt;(comp);
                if(pCheckBox != NULL)
                {
                	CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pCheckBox-&gt;Caption);
                   	pCheckBox-&gt;Caption = CaptionName[i];
                }
            }

            // Betreffend Objekte der Klasse TPanel
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TPanel&quot;))
            {

            	TPanel *pPanel = dynamic_cast&lt;TPanel *&gt;(comp);
                if(pPanel != NULL)
                {
                    CaptionName[i] = searchXMLFile(ObjName[i], Sprache,pPanel-&gt;Caption);
                   	pPanel-&gt;Caption = CaptionName[i];
                }
            }

            // Betreffend Objekte der Klasse TGroupBox
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TGroupBox&quot;))
            {

            	TGroupBox *pGroupBox = dynamic_cast&lt;TGroupBox *&gt;(comp);
                if(pGroupBox != NULL)
                {
                    CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pGroupBox-&gt;Caption);
                   	pGroupBox-&gt;Caption = CaptionName[i];
                }
            }

            // Betreffend Objekte der Klasse TRadioGroup
        	if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TRadioGroup&quot;))
            {
                TRadioGroup *pRadioGroup = dynamic_cast&lt;TRadioGroup *&gt;(comp);
                if(pRadioGroup != NULL)
                {
                	CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pRadioGroup-&gt;Caption);
                   	pRadioGroup-&gt;Caption = CaptionName[i];
                }
            }
    }
}
</code></pre>
<p>Und zu guter letzt nochmal die Headerdatei und CPP-Datei von denen ich das Objekt(Formular dan die Methode übergeben möchte:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

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

//---------------------------------------------------------------------------
class TFormObjDebug : public TForm  
{
__published:	// Von der IDE verwaltete Komponenten
	TListBox *LB1;
	TPanel *Panel1;
	TSplitter *Splitter1;
	TButton *Button2;
	void __fastcall Button2Click(TObject *Sender);
private:	// Benutzer-Deklarationen
public:		// Benutzer-Deklarationen
	__fastcall TFormObjDebug(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormObjDebug *FormObjDebug;
//---------------------------------------------------------------------------
#endif

//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;ObjectDebug.h&quot;
#include &quot;LangRename.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TFormObjDebug *FormObjDebug;
//---------------------------------------------------------------------------
__fastcall TFormObjDebug::TFormObjDebug(TComponent* Owner)
	: TForm(Owner)
{
  //LangRename::SystemLangRename(this);
}
//---------------------------------------------------------------------------
void __fastcall TFormObjDebug::Button2Click(TObject *Sender)
{
	Close();	
}
//----------------------------------------------------------
</code></pre>
<p>Bitte gebt mir unterstützende Hilfe.<br />
Weitere Header- und Quelltextdateien lasse ich jetzt mal weg.<br />
Danke jedem der mir hilft.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161983/vererbung-und-methodenaufrufe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 17:17:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161983.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Oct 2006 07:08:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung und Methodenaufrufe on Fri, 13 Oct 2006 07:08:07 GMT]]></title><description><![CDATA[<p>Auch auf die Gefahr hin mich extrem zu blamieren, stelle ich mal mein Problem dar. Ich bin noch nicht ganz in der Objektorientierten Prgrammierung angekommen. Komme aus der Assembler- und ST-Programmierung. Wollte nun meiner Funktion SystemLangRename() das Objekt (Formular) von ObjectDebug übergeben und auswerten lassen. Leider Klappt das nich ganz. Habe noch Probleme bei der Vererbung und bei der Übergabe an die Methode.<br />
Ich stelle mal den Quelltext hinein und würde mich freuen wenn mir einer helfen könnte. Bitte nicht auf mich herum hacken. Bin noch neu in der Objektorientierten Programmierung.</p>
<p>Headerdatei Langrename:</p>
<p>#ifndef LangRenameH<br />
#define LangRenameH</p>
<p>//---------------------------------------------------------------------------<br />
#include &lt;Classes.hpp&gt;<br />
#include &lt;Controls.hpp&gt;<br />
#include &lt;StdCtrls.hpp&gt;<br />
#include &lt;Forms.hpp&gt;<br />
#include &lt;Buttons.hpp&gt;<br />
#include &lt;Menus.hpp&gt;<br />
#include &lt;ComCtrls.hpp&gt;<br />
#include &lt;ExtCtrls.hpp&gt;<br />
//---------------------------------------------------------------------------<br />
#endif<br />
class LangRename<br />
{<br />
public:<br />
virtual void LangRename::SystemLangRename(TForm *pForm);<br />
};</p>
<p>CPP-Datei LangRename:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#pragma hdrstop
#include &lt;vcl.h&gt;
#include &quot;ObjectDebug.h&quot;
#include &quot;LangRename.h&quot;
#include &lt;XMLDoc.hpp&gt;
#pragma package(smart_init)
#include &quot;ObjectDebug.h&quot;
#define __SHOWNAMES__
//---------------------------------------------------------------------------
/*
Einlesen der XML-Datei mit der Sprachen- und Objekliste.
Suchalgorithmus findet in XML-Datei passenden Namen und gibt der Sprache
entsprechend einen AnsiString-Wert zurück. Bei LoadXMLDocument muss der
entsprechende Dateiname als String übergeben werden.
Bitte darauf achten, dass das Format der XML-Datei entsprechend ist.
Es ist darauf zu achten, dass der Objektname für die einzelnen Elmente
der selbe Name ist, der in der XML-Datei eingetragen ist. Es ist zu empfehlen,
zuerst die XML-Datei zu erweitern bevor Elemente einem Formular
hinzugefügt werden.
*/
AnsiString searchXMLFile(AnsiString ObjName, AnsiString Sprache, AnsiString returnXMLValue)
{

    int	bFound = 0;

	try
  		{
        _di_IXMLDocument XML = LoadXMLDocument(&quot;language.xml&quot;);
        _di_IXMLNodeList NodeList = XML-&gt;DocumentElement-&gt;ChildNodes;

  		int count = NodeList-&gt;Count;
  		for (int i=0; i&lt;count; i++)
    	{
    		_di_IXMLNode ValueNode = NodeList-&gt;Nodes[i];
    		String NodeId = (String)ValueNode-&gt;GetAttribute(&quot;id&quot;);
    		if (NodeId == ObjName)
      		{
      			returnXMLValue = ValueNode-&gt;ChildNodes-&gt;FindNode(Sprache)-&gt;NodeValue;
    			bFound = 1;
                break;
            }
    	}

        #ifdef __SHOWNAMES__
        if (bFound == 0)
        {
        	FormObjDebug-&gt;LB1-&gt;Items-&gt;Add( &quot;Name: &quot; + ObjName + &quot;  !!!Objekt konnte nicht in der XML-Datei gefunden werden!!!&quot; );
        }
         #endif

    	return returnXMLValue;
        }

    catch (...)
		{
        try
				{
                    if (Sprache == &quot;deu&quot;)
                    {
                        throw Exception(&quot;Sprachdatei wurde nicht gefunden!&quot;);
                    }

                    else
                    {
                        throw Exception(&quot;Language-file not found!&quot;);
                    }

                }

            catch (Exception &amp;exception)
				{
					Application-&gt;ShowException(&amp;exception);
				}
		}

   	return returnXMLValue;
}

//---------------------------------------------------------------------------
/*
Methode die durch den Konstroktor des Formulares aufgerufen wird.
*/
//---------------------------------------------------------------------------

void LangRename::SystemLangRename(TForm *pForm)
{
	/*
    Variablen zum Zwischenspeichern der Caption und des Objektnamens.
    Zusätzliche Variable zur Sprachenverwaltung.
    */

	AnsiString ObjName[50];
    AnsiString CaptionName[50];
    String Sprache = &quot;eng&quot;;
    int NumberMenu;
    int NumberItem;
    int zahl;

	//----------------------------------------------------------------------
    #ifdef __SHOWNAMES__
    FormObjDebug-&gt;Show();
    FormObjDebug-&gt;LB1-&gt;Clear();
    #endif
    //----------------------------------------------------------------------

	/*
    Zählung, Prüfung und Benennung der Objekte des Formulars.
    Jedes Objekt des Formulars wird geprüft ob es ein Bestandteil einer
    vorgegeben Klasse ist um es je nach Sprache zu benennen.
 	*/

    // Zählung der Objekte des Formulars
    for (int i=0; i&lt; pForm-&gt;ComponentCount;i++)

		{
            // Identifizierung des Objektnamens
            ObjName[i] = pForm-&gt;Components[i]-&gt;GetNamePath();

            // Cast von Components der Klasse TComponent
       	   	TComponent *comp = pForm-&gt;Components[i];

           	/* Dient zur Aufistung aller Objekte eines Formualrs in einem Fenster
          	#ifdef __SHOWNAMES__
    		FormObjDebug-&gt;LB1-&gt;Items-&gt;Add( &quot;Name: &quot; + ObjName[i] + &quot; Class: &quot; + Components[i]-&gt;ClassName());
            #endif
            */

            // Betreffend Objekte der Klasse TLabel
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TLabel&quot;))
            {
               	TLabel *pLabel = dynamic_cast&lt;TLabel *&gt;(comp);
            	if(pLabel != NULL)
            	{
	                CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pLabel-&gt;Caption );
                	pLabel-&gt;Caption = CaptionName[i];
                }
        	}

            // Betreffend Objekte der Klasse TButton
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TButton&quot;))
            {
            	TButton *pButton = dynamic_cast&lt;TButton *&gt;(comp);
                if(pButton != NULL)
                {
	                CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pButton-&gt;Caption);
                   	pButton-&gt;Caption = CaptionName[i];
                }

            }

            // Betreffend Objekte der Klasse TPopupMenu
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
			{
  				TPopupMenu *pPopupMenuObj = static_cast&lt;TPopupMenu *&gt;(comp);
  				NumberItem = pPopupMenuObj-&gt;Items-&gt;Count;
  				for (int j=0; j &lt; NumberItem; ++j)
  				{
    				TMenuItem *ItemToEdit = pPopupMenuObj-&gt;Items-&gt;Items[j];
    				AnsiString ItemName(ItemToEdit-&gt;GetNamePath());
    				ItemToEdit-&gt;Caption = searchXMLFile(ItemName, Sprache,ItemToEdit-&gt;Caption);
    			}
  			}

            // Betreffend Objekte der Klasse TTabControl
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TTabControl&quot;))
            {
                   	TTabControl *pTabControl;
                    int nCount, j;
                    String TabName;
                    pTabControl = (TTabControl *)pForm-&gt;Components[i];
                    nCount		= pTabControl-&gt;Tabs-&gt;Count;

                    if( nCount )
                    {
                    	for ( j=0; j&lt;nCount ; j++ )
                        {

                          	TabName = searchXMLFile(pTabControl-&gt;Tabs-&gt;Strings[j],Sprache,pTabControl-&gt;Tabs-&gt;Strings[j]);
                           	pTabControl-&gt;Tabs-&gt;Strings[j] = TabName;
          		        }
                    }
            }

            // Betreffend Objekte der Klasse TMainMenu
           	if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TMainMenu&quot;))
            {
                    TMainMenu *pMainMenuObj = static_cast&lt;TMainMenu *&gt;(comp);
  					NumberMenu = pMainMenuObj-&gt;Items-&gt;Count;
                   	for (int i=0; i &lt; NumberMenu; i++)
                    {
                        AnsiString ItemName;
    					TMenuItem *pItemToEdit = pMainMenuObj-&gt;Items-&gt;Items[i];
                        ItemName = pItemToEdit-&gt;GetNamePath();
    					pItemToEdit-&gt;Caption = searchXMLFile(ItemName, Sprache,pItemToEdit-&gt;Caption);

    					for (int j=0; j&lt;pItemToEdit-&gt;Count;j++)
                        {
                        	ItemName = pItemToEdit-&gt;Items[j]-&gt;GetNamePath();
        					pItemToEdit-&gt;Items[j]-&gt;Caption = searchXMLFile(ItemName, Sprache, pItemToEdit-&gt;Items[j]-&gt;Caption);
                        }
    	  			}
            }

            // Betreffend Objekte der Klasse TRadioButton
        	if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TRadioButton&quot;))
            {

            	TRadioButton *pRadioButton = dynamic_cast&lt;TRadioButton *&gt;(comp);
                if(pRadioButton != NULL)
                {
                	CaptionName[i] = searchXMLFile(ObjName[i], Sprache,pRadioButton-&gt;Caption);
                   	pRadioButton-&gt;Caption = CaptionName[i];
                }
			}

            // Betreffend Objekte der Klasse TCheckBox
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TCheckBox&quot;))
            {

            	TCheckBox *pCheckBox = dynamic_cast&lt;TCheckBox *&gt;(comp);
                if(pCheckBox != NULL)
                {
                	CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pCheckBox-&gt;Caption);
                   	pCheckBox-&gt;Caption = CaptionName[i];
                }
            }

            // Betreffend Objekte der Klasse TPanel
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TPanel&quot;))
            {

            	TPanel *pPanel = dynamic_cast&lt;TPanel *&gt;(comp);
                if(pPanel != NULL)
                {
                    CaptionName[i] = searchXMLFile(ObjName[i], Sprache,pPanel-&gt;Caption);
                   	pPanel-&gt;Caption = CaptionName[i];
                }
            }

            // Betreffend Objekte der Klasse TGroupBox
            if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TGroupBox&quot;))
            {

            	TGroupBox *pGroupBox = dynamic_cast&lt;TGroupBox *&gt;(comp);
                if(pGroupBox != NULL)
                {
                    CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pGroupBox-&gt;Caption);
                   	pGroupBox-&gt;Caption = CaptionName[i];
                }
            }

            // Betreffend Objekte der Klasse TRadioGroup
        	if (pForm-&gt;Components[i]-&gt;ClassNameIs(&quot;TRadioGroup&quot;))
            {
                TRadioGroup *pRadioGroup = dynamic_cast&lt;TRadioGroup *&gt;(comp);
                if(pRadioGroup != NULL)
                {
                	CaptionName[i] = searchXMLFile(ObjName[i], Sprache, pRadioGroup-&gt;Caption);
                   	pRadioGroup-&gt;Caption = CaptionName[i];
                }
            }
    }
}
</code></pre>
<p>Und zu guter letzt nochmal die Headerdatei und CPP-Datei von denen ich das Objekt(Formular dan die Methode übergeben möchte:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

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

//---------------------------------------------------------------------------
class TFormObjDebug : public TForm  
{
__published:	// Von der IDE verwaltete Komponenten
	TListBox *LB1;
	TPanel *Panel1;
	TSplitter *Splitter1;
	TButton *Button2;
	void __fastcall Button2Click(TObject *Sender);
private:	// Benutzer-Deklarationen
public:		// Benutzer-Deklarationen
	__fastcall TFormObjDebug(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormObjDebug *FormObjDebug;
//---------------------------------------------------------------------------
#endif

//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;ObjectDebug.h&quot;
#include &quot;LangRename.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TFormObjDebug *FormObjDebug;
//---------------------------------------------------------------------------
__fastcall TFormObjDebug::TFormObjDebug(TComponent* Owner)
	: TForm(Owner)
{
  //LangRename::SystemLangRename(this);
}
//---------------------------------------------------------------------------
void __fastcall TFormObjDebug::Button2Click(TObject *Sender)
{
	Close();	
}
//----------------------------------------------------------
</code></pre>
<p>Bitte gebt mir unterstützende Hilfe.<br />
Weitere Header- und Quelltextdateien lasse ich jetzt mal weg.<br />
Danke jedem der mir hilft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1153999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153999</guid><dc:creator><![CDATA[BCB-Anfänger]]></dc:creator><pubDate>Fri, 13 Oct 2006 07:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Methodenaufrufe on Fri, 13 Oct 2006 07:13:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Leider Klappt das nich ganz.</p>
</blockquote>
<p>Das ist keine ausreichende Fehlerbeschreibung.<br />
Kürze deinen Quellcode auf die relevanten Zeilen und poste eine genaue Fehlerbeschreibung.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154000</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 13 Oct 2006 07:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Methodenaufrufe on Fri, 13 Oct 2006 07:32:21 GMT]]></title><description><![CDATA[<p>Hier die Fehlerbeschreibung und der gekürtzte Quelltext.<br />
Zuerst der Quelltext.<br />
Headerdatei 1:</p>
<pre><code class="language-cpp">...
class LangRename
{
public:
void LangRename::SystemLangRename(TForm *pForm);
...
};
</code></pre>
<p>CPP-Datei1:</p>
<pre><code class="language-cpp">void LangRename::SystemLangRename(TForm *pForm)
{
...	
    // Zählung der Objekte des Formulars
    for (int i=0; i&lt; pForm-&gt;ComponentCount;i++)
...
</code></pre>
<p>Hederdatei 2:</p>
<pre><code class="language-cpp">#include &quot;LangRename.h&quot;
//---------------------------------------------------------------------------
class TFormObjDebug : public TForm
{
__published:
...
</code></pre>
<p>CPP-Datei 2:</p>
<pre><code class="language-cpp">TFormObjDebug *FormObjDebug;

__fastcall TFormObjDebug::TFormObjDebug(TComponent* Owner)
	: TForm(Owner)
{
  //????? LangRename::SystemLangRename(this); ???
}
</code></pre>
<p>So,<br />
versuche es nocheinemal kürzer und knapper zu beschreiben.<br />
möchte das Objekt (das Formular aus Datei 2) an die an Methode SystemLangReename()(an Datei 1) übergeben. Bin noch neu in der Objektorientierten Programmierung. Was muß ich nun tun und wie schreibt man das als Quelltext? Verrerben?<br />
Sorry, für so eine (wahrscheinlich für euch) simple frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154012</guid><dc:creator><![CDATA[BCB-Anfänger]]></dc:creator><pubDate>Fri, 13 Oct 2006 07:32:21 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Methodenaufrufe on Fri, 13 Oct 2006 07:50:08 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>du brauchst erstmal eine gültige Instanz der Klasse LangRename, zum Beispiel als Member der Form-Klasse</p>
<pre><code class="language-cpp">#include &quot;LangRename.h&quot; // hier includen, im cpp nicht mehr nötig
...
class TFormObjDebug : public TForm  
{
... 
private:    // Benutzer-Deklarationen
    LangRename iRename; // konkrete Instanz für dieses Form
public:        // Benutzer-Deklarationen
</code></pre>
<p>jetzt kannst du in den Methoden der Form-Klasse diese Instanz benutzen</p>
<pre><code class="language-cpp">__fastcall TFormObjDebug::TFormObjDebug(TComponent* Owner)
    : TForm(Owner)
{
  iRename.SystemLangRename(this);
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154026</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 13 Oct 2006 07:50:08 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Methodenaufrufe on Fri, 13 Oct 2006 07:54:02 GMT]]></title><description><![CDATA[<p>Vielleicht wäre es hier gut den Code von SystemLangRename in den Konstruktor zu verlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154031</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 13 Oct 2006 07:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Methodenaufrufe on Fri, 13 Oct 2006 08:21:08 GMT]]></title><description><![CDATA[<p>Danke schön an euch beiden.<br />
Denke das wird mir sehr weiterhelfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154051</guid><dc:creator><![CDATA[BCB-Anfänger]]></dc:creator><pubDate>Fri, 13 Oct 2006 08:21:08 GMT</pubDate></item></channel></rss>