EAccess Violation bei Zuweisung eines Wertes in meiner Klasse



  • Hallo
    Ich habe eine neue Klasse Bilder erstellt, die von TPicture abgeleitet ist:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    
    //------------Klasse Bilder--------------------------------------------------
    class Bilder : public TPicture
    {
    public:
    int test;
    };
    //------------Ende Klasse Bilder---------------------------------------------
    
    Bilder *Bild;
    
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Bild->test=10;
    }
    //---------------------------------------------------------------------------
    

    nun bekomme ich bei Zuweisung eines Wertes in Zeile 31 eine EAccess Violation...

    Woran liegt das?
    Bin ich verblendet?
    Finde den Fehler nicht...

    Danke

    wNw



  • Du hast keinen Speicher für Bild bereitgestell. Irgendwo sollte da noch ein

    Bild = new Bilder;
    

    stehen oder (noch besser) du verzichtest ganz auf den Zeiger und nimmst gleich

    Bilder Bild;
    

    und bei der Gelegenheit kannst du aus Bild auch gleich ein Member deiner Form-Klasse machen da globale Variablen doch nur Ärger machen (such hier im Forum einfach mal nach "globale Variablen").



  • Hallo Braunstein
    Danke
    Werds so machen.

    wNw


Anmelden zum Antworten