Typname erwartet?



  • Hi;

    Ich habe folgenden Code

    //---------------------------------------------------------------------------
    
    #ifndef CDataEditH
    #define CDataEditH
    
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <math.hpp>
    #include <algorithm>
    #include <vector>
    
    using namespace std;
    //---------------------------------------------------------------------------
    
    class CDataEdit : public TPanel
    {
        private:
    
        public:
            CDataEdit(Classes::TComponent* AOwner);
    
    };
    #endif
    

    und bekomme folgende Fehlermeldung
    [C++ Fehler] CDataEdit.h(18): E2303 Typname erwartet

    Bei der Fehlermeldung geht der cursor nach
    class CDataEdit : public TPanel
    {|

    Das verstehe ich leider nicht



  • Ich habe jetzt
    #include <ExtCtrls.hpp>
    mit includiert.
    Das hat geholfen
    ABER
    [C++ Fehler] CDataEdit.h(23): E2113 Virtuelle Funktion 'CDataEdit::CDataEdit(TComponent )' verursacht Konflikte mit der Basisklasse 'TPanel'
    Obwohl ich in der TPanel deklaration nachgesehen habe.
    TPanel wird auch mit Classes::TComponent
    AOwner deklariert.



  • Hallo

    wenn du schon dir die Definition des Konstruktors von TPanel anschaust, hättest du auch merken können, das es so aussehen muß

    virtual __fastcall CDataEdit(Classes::TComponent* AOwner);
    

    Das __fastcall muß auch in die Implementation des Konstruktors.

    Übrigens kannst du dir bei dem Ableiten von VCL-Komponenten auch vom Assistenten helfen lassen, zu finden unter Menü Komponente/Neue Komponente...

    bis bald
    akari



  • Ja klar, Danke


Anmelden zum Antworten