• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja for bulider 6

Object Storage Arubacloud
0 głosów
210 wizyt
pytanie zadane 28 września 2015 w C i C++ przez natrov Gaduła (3,970 p.)

Witam,

Jak prawidłowo wykonać taką pętlę 100 razy ?

Żeby Image1-Image100 zapełniły się odpowiednią grafiką.

Wiem, że można 100 razy napisać:

Image1->Picture->LoadFromFile("img/white.bmp");
Image2->Picture->LoadFromFile("img/white.bmp");
Image3->Picture->LoadFromFile("img/white.bmp");

 

Lecz to trochę głupie :)

 for (int i = 0; i < 100; i ++)
        {

          Image1->Picture->LoadFromFile("img/white.bmp");

        }

 

4 odpowiedzi

0 głosów
odpowiedź 28 września 2015 przez niezalogowany
zamiast Image1 daj Image[i]
0 głosów
odpowiedź 28 września 2015 przez event15 Szeryf (93,790 p.)
Przykro mi, ta pętla nie wykona się 100 razy.
komentarz 28 września 2015 przez natrov Gaduła (3,970 p.)
Zdaje sobię sprawę, że wykona się 100 razy, ale nie mogę zmeinić Image1 na Image+i

:)
komentarz 28 września 2015 przez event15 Szeryf (93,790 p.)

NIE wykona się 100 razy. Image jest obiektem więc możesz zrobić tablicę obiektów których indeksy będą inkrementowane. Zaś z zakresu C++Buildera są więksi specjaliści. Ja w nim tworzyłem w technikum dawno temu.

komentarz 28 września 2015 przez natrov Gaduła (3,970 p.)

 

 for (int i = 0; i < 100; i ++)
        {
          Image[i]->Picture->LoadFromFile("img/white.bmp");


        }

 

 

[C++ Error] Unit1.cpp(26): E2451 Undefined symbol 'Image'

 

Niestety ;/

komentarz 28 września 2015 przez event15 Szeryf (93,790 p.)
Jeśli w taki sposób próbujesz dynamicznie tworzyć obiekt to wybacz.
komentarz 28 września 2015 przez natrov Gaduła (3,970 p.)
Kolega up napisał "zamiast Image1 daj Image[i]" ;/
komentarz 28 września 2015 przez event15 Szeryf (93,790 p.)

To bardziej będzie coś w stylu:

ImgTab[100] = new Image;

for(int i = 0; i <= 100; i++) { //reszta stuffu }

komentarz 28 września 2015 przez natrov Gaduła (3,970 p.)
Nie bardzo, nie chce tworzyć nowych obiektów gdyż je już stworzyłęm i ułozylem na formie. Chce je tylko wypełnić grafiką :)
0 głosów
odpowiedź 28 września 2015 przez patryk16 Obywatel (1,080 p.)
Spróbuj stworzyć tablice obiektów TImage*.

Wtedy pętla wygładała by mniej więcej tak:

TImage *Image[100];

for(int i=0;i<100;i++)

{

Image[i]=new TImage(this);

Image[i]->Picture->LoadFromFile("img/white.bmp");

Image[i]->Show();

}
komentarz 28 września 2015 przez event15 Szeryf (93,790 p.)
Zauważ w poprzednich postach, że on se naciapał 100 obiektów obrazków już na forma metodą hardkorową i prawdopodobnie nie rozumie, że trzeba to dynamicznie tworzyć :)
komentarz 28 września 2015 przez patryk16 Obywatel (1,080 p.)
Ewentualnie może użyć funkcji Free() po za koniczeniu pracy programu albo poprostu

delete [] Image.
0 głosów
odpowiedź 29 września 2015 przez maly Nałogowiec (37,190 p.)

Dużo za dużo masz tych obrazków na Formie, lepiej by było, tak jak proponowali poprzednicy, użyć jakiś kontener z obrazkami.

Jednak jeśli chcesz rozwiązanie Twojego problemu to pewnie wystarczy "przelecieć" po wszystkich komponentach znajdujących się na formatce i jeśli jest typem TImage załadować bmp-a.

for (int i = 0; i < Form1->ComponentCount; ++i)
{
    TImage *img = dynamic_cast<TImage *>(Form1->Components[i]);
    if(img)
        img->Picture->LoadFromFile("obrazek.bmp");
}

 

Podobne pytania

0 głosów
2 odpowiedzi 154 wizyt
pytanie zadane 29 września 2015 w C i C++ przez natrov Gaduła (3,970 p.)
0 głosów
1 odpowiedź 249 wizyt
0 głosów
0 odpowiedzi 147 wizyt

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...