neue Eigenschaft für TRadioButton



  • Hallo
    ich möchte einige RadioButtons um die Eigenschaft ZeigerAufObjekt erweitern.

    class OBJRadio : public TRadioButton
    {
       public:
    
                    TObject * PtOBJ;
    };
    

    Später wird das ganze dynamisch aufgerufen.

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
       OBJRadio *  Rad1 ;
    
             Rad1 = new  OBJRadio (this)  ;
    
             Rad1->Left = 10 ;
             Rad1->Top = 10  ;
             Rad1->Caption ="Hallo";
             Rad1->Parent = Form1;
             Rad1->Checked = true;
    }
    

    Das ganze wird mit dieser Meldung gewürdigt :

    ODER E2125 Compiler konnte Standardkonstruktor nicht für die Klasse 'klasse' generieren
    ODER E2125 Compiler konnte Operator = nicht für die Klasse 'klasse' generieren
    In manchen Fällen muß der Compiler Elementfunktionen generieren.
    Wenn eine solche Elementfunktion wegen der Vorgaben der Programmiersprache nicht erzeugt werden kann, gibt der Compiler eine der obigen Fehlermeldungen aus.

    ich lese daraus das ich jetzt noch einen eigenen konstruktor machen muß.
    Wie mach ich das bitte ?

    MfG Schlumpi



  • Hallo

    Zuerstmal solltest du die Grundlagen von OOP in C++ beherschen.

    Dann wäre es kein Problem diene Klasse entsprechend zu erweitern, das sie in die VCL-Struktur passt

    class OBJRadio : public TRadioButton
    {
       public:
    
       __fastcall OBJRadio(TComponent* Owner);
    
                    TObject * PtOBJ;
    };	
    
    __fastcall OBJRadio::OBJRadio(TComponent* Owner) : PtOBJ(0)
    {
    }
    


  • Hallo akari
    Danke für die Mühe.
    Ich denke meine Version war so wie im Tutorial beschrieben.

    Jetzt hab ich deine Version gepastet und folgendes erhalten :

    [C++ Fehler] Unit1.cpp(42): E2251 Standardkonstruktor zum Initialisieren der Basisklasse 'TRadioButton' nicht gefunden
    Der Hilfstext sagt sinngemäß das keine Basisklasse existiert.

    Kannst du da nochmal drübersehen?
    MfG Schlumpi.



  • Hallo

    sorry, da fehlt noch der Aufruf des Konstruktor für die Basisklasse

    __fastcall OBJRadio::OBJRadio(TComponent* Owner) : TRadioButton(Owner), PtOBJ(0)
    {
    }
    

    bis bald
    akari



  • Hab ich gerade ausprobiert.
    Funktioniert toll.Danke.
    MfG Schlumpi.


Anmelden zum Antworten