mehrere bilder mit forschleife anzeigen lassen ! WIE ?



  • hallo !

    ich möchte nacheinander mehrere bilder anzeigen lassen solange etwas läuft . dies soll alles in einer for-schleife geschehen . es sind 15 bilder .

    so sieht das aus aber es klappt nicht so ganz 😞 das letzte bild wird nur am ende angezeigt ! hilfe ! bitte ! 😞

    for (int j = 0; j <= 15; j++)
    {
     ImageList1->GetBitmap(j,Image1->Picture->Bitmap);
    }
    


  • Hallo,

    Du solltest den Bildern schon etwas Zeit geben zu erscheinen. Also evtl. ein Sleep() mit einer passenden Zeit einfügen. Evtl. ist auch noch ein ProcessMessages erforderlich.



  • Hallo

    /Edit : falsch verstanden.

    bis bald
    akari



  • ich habe nun sleep und processmessages eingebaut . jedoch zeigt er anschließend nur das bild nummer 0 und kein bild dazwischen was ja durch die schleife mehrere sein sollten !

    ich verstehe das nicht 😞 tut mir leid ! vielleicht liegts an der hitze hier..

    for (int j = 0; j <= 15; j++)
     {
      ImageList1->GetBitmap(j,Image1->Picture->Bitmap);
      Sleep(100);
      Application->ProcessMessages();
     }
    


  • Hallo

    for (int j = 0; j <= 15; j++)
    {
      ImageList1->GetBitmap(j,Image1->Picture->Bitmap);
      Sleep(100);
      Image1->Update();
      Application->ProcessMessages();
    }
    

    Vielleicht solltest du das ganze besser in einen Timer oder gar Thread auslagern, um dein Programm damit nicht zu blokieren.

    bis bald
    akari



  • hm , das hat den gleichen effekt wie vorher 😞

    gibt es denn eine möglichkeit gifs in das projekt zu kopieren und dann anzeigen zu lassen ? vielleicht wäre das ja besser ?



  • //abfolge von Bildern..
    AnsiString a="monkey"; //name meiner .bmp´s
    int b=1;      
    AnsiString c=".bmp";
    AnsiString d=a+b+c;  //Datei = name+nummer+dateiendung
    ------------
    Bsp:  monkey1.bmp   (b++;)
          monkey2.bmp
          ...
          ...
    --------------------------------
    Timer Objekt:
    
    Image1->Picture->LoadFromFile(d);
    b++;
    

    Vieleicht hilft dir das...
    Ich weiß einiege von euch werden sich die Haare raufen aber so funktioniert es
    und ich bin glücklich^^



  • sorry ich hab im timer objekt das hier vergessen...
    komm an erste stelle..

    AnsiString d=a+b+c;
    

    und wenn du willst das die animation immer wieder durchläuft...
    [code]
    if(b==7)//Je nachdem wieviele Bidler du hast..
    {
    b=1;
    }
    else
    {
    Image1->Picture->LoadFromFile(d);
    b++;
    }


Anmelden zum Antworten