Abgeleitete Klasse erkennen



  • Hallo !

    Wie kann ich denn eigentlich abfragen von welcher Klasse ich sie abgeleitet habe.

    Beispielsweise mein Haupftfenster.

    class TMainFormular : public TForm
    {
    }
    

    Ich finde es, indem ich alle Komponenten durchsuche

    for (int i = 0; i < Application->ComponentCount; i++) {
    	TComponent *co = Application->Components[i];
    	coName = co->Name;
    	clName = co->ClassName();
    }
    

    Der Klassenname ist erwartungsgemäß "TMainFormular"

    Leider hat das aber scheinbar keine "ParentComponent"

    TComponent *coP = co->GetParentComponent();
    if (coP != NULL) {
    	clPName = coP->ClassName();
    }
    

    Wie komme ich denn nun an die Information dass es sich hier um ein TForm handelt ?

    Vielen Dank



  • Mit einem dynamic_cast z.Bsp.

    TComponent *co = Application->Components[i];
    TForm* form = dynamic_cast<TForm*>(co);
    if( form != 0) {
    // Ok es ist von TForm abgeleitet
    }
    


  • Super, vielen Dank !


Anmelden zum Antworten