probleme beim erzeugen von TImage



  • Hey

    ich versuche momentan ne menge Images zu erzeugen, da ich lauter kleine bider an bestimmten stellen anzeigen muss.
    Doch beim erstellen von Image[6][14] tritt eine Exception der Klasse EAccessViolation auf.
    Ich hoffe das mir jemand sagen kann was ich ma wieder verpeile *g*.
    hier ist der code:

    int pixelY=3;
       for(int y=0;y<=6;y++)
       {
          int pixelX=2;
          for(int x=0;x<=26;x++)
          {
             //Image ist als array wie folgt in der Headerdatei initialisiert:
             //Image[6][26];
             Image[y][x]=new TImage(this);
             Image[y][x]->Parent=this;
             Image[y][x]->Top=(Image1->Top+pixelY);
             Image[y][x]->Left=(Image1->Left+pixelX);
             Image[y][x]->Height=12;
             Image[y][x]->Width=11;
             Image[y][x]->Picture->LoadFromFile("/Bitmaps/LEDON.bmp");
             pixelX=pixelX+13;
          }
          pixelY=pixelY+13;
       }
    

  • Mod

    Hallo

    schau genau hin

    //Image ist als array wie folgt in der Headerdatei initialisiert:
    //Image[6][26];
    Zugriff auf
    Image[6][14]
    (kleiner Tip - die 6 ist falsch - zu gross)
    MfG
    Klaus



  • hä wiso ? wenn ich ein fald mache das 6 groß ist kann ich ja wohl die 6 auch noch belegen oder? Außerdem wenn deine aussage richtig währe, dann müsste er schon bei Image[6][0] verpeilen.



  • Array-Indizes beginnen (üblicherweise) bei Null, ein mit [6] deklariertes Array hat also die Elemente 0 bis 5. Dass dein Array erst bei [6][14] crasht ist Zufall, mit [6] schreibst du wild im Speicher herum und da ist eben nichts garantiert.

    Vielleicht nochmal die C/C++-Grundlagen ein wenig auffrischen? 😉



  • ups ok danke *g*


Anmelden zum Antworten