Mehrere TImage dynamisch laden



  • Hallo
    Ich habe lange nichts mehr mit dem CBuilder 5 gemacht.
    Jetzt wollte ich "mal eben" 5 Bitmap-Bilder (TImage) dynamisch laden
    und später nacheinander anzeigen.
    Für TImageList sind die Bilder zu gross.
    Folgendes hab ich probiert:

    In Unit1.h:

    TImage *Bilder[5];
    

    In Unit1.cpp:

    void __fastcall TForm1::FormShow(TObject *Sender)
    {
    for (int i = 0; i < 5; i++) {
    Bilder[i]->Picture->LoadFromFile("G:\\C++ Projekte\\Metronom\\Bilder\\Bild000"+IntToStr(i)+".bmp");
    }
    }
    

    Ich bekomme folgende Exeption:

    EAccessViolation Zugriffsverletzung bei Adresse xxxxxx.
    Lesen von Adresse 000001B0

    Was mache ich denn falsch?

    Danke
    wNw



  • Hallo

    Du hast vermutlich in deinem TImage-Array noch gar keine echten TImage-Instanzen hinterlegt. Schau dir einfach mal in der FAQ hier im Forum im Abschnitt Komponenten benutzen den Thread Dynamische Arrays von Komponenten an.

    bis bald
    akari



  • Danke akari.
    Da hätte ich auch selbst drauf kommen können, mal in den FAQs zu suchen.
    Nichts für ungut...
    Danke
    wNw



  • Nun klappt alles prima.
    Ich habe die Vector Variante genommen:

    void __fastcall TForm1::FormShow(TObject *Sender)
    {
    for (int i = 0; i < 5; i++) {
    	Graphics::TBitmap *bmp = new Graphics::TBitmap;
    	bmp->LoadFromFile("G:\\C++ Projekte\\Metronom\\Bilder\\Bild000"+IntToStr(i)+".bmp");
    	BmpVector.push_back(bmp);
    }
    }
    

    Danke nochmal.
    wNw


Anmelden zum Antworten