Bei Laufzeit erzeugtes Image ansprechen



  • Guten Abend,

    wie kann ich ein, zur Laufzeit erzeugtes Objekt ansprechen?

    const int x = 6;
       TImage *img[x];
       int i;
       iLeft += 30;
       sPath = "c:\\arrow.bmp";
    
    	img[i] 		   = new TImage(this);
    	img[i]->Parent = this;
    	img[i]->Width  = 30;
    	img[i]->Height = 30;
    	img[i]->Left   = iLeft;
    	img[i]->Top    = 1;
    	img[i]->Name   = sHelp;
    	img[i]->OnClick    = Button2Click;
    	img[i]->Proportional = true;
    	img[i]->Show();
    	img[i]->Picture->LoadFromFile(sArrowPic);
    

    Kann mir einer sagen wie ich jetzt so ein Objekt ansprechen kann?
    Das wäre sehr nett....
    Mit img[i]->Picture->LoadFromFile("c:\\test.bmp);
    gehts ja nicht, oder?
    Vielen Dank schonmal...



  • Hallo

    Doch das ist genau richtig. Natürlich muß das Array auch dort gültig sein wo du es verwenden willst. Deshalb bietet sich an das Array als Member des Forms zu deklarieren anstatt lokal in einer Methode.

    bis bald
    akari



  • Mit img[i]->Picture->LoadFromFile("c:\\test.bmp");
    gehts ja nicht, oder?

    Doch, nur was ich mich bei deinem Codebeispiel frage ist, wieso du ein Array von TImage Pointern anlegst, dann einen Integer i, der nie einen Wert zugewiesen bekommt und den dann auchnoch als Index des Arrays benutzt. Sieht mir irgendwie danach aus, als fehlt bei dir ne for schleife?! Falls du die entfernt hast oder was auch immer, i sollte auf jedenfall einen Wert zugewiesen bekommen!

    const int x = 6;
       TImage *img[x];
    
    for(int i=0;i<6;i++)
    {
        img[i]            = new TImage(this);
        img[i]->Parent = this;
        //Positionierung hab ich jetzt mal weggelassen
        img[i]->Name   = "Image" + IntToStr(i);
        img[i]->Show();
        img[i]->Picture->LoadFromFile("c:\\test.bmp");
    }
    

    EDIT: akari mal wieder schneller 😉


Anmelden zum Antworten