Bilder zeitgesteuert umschalten (war: Bitmaps)
-
Hallo,
ich möchte das eine Minute lang 2 Bitmaps im 1 sek hin- und herschalten, wenn die 1 Minute rum ist soll nun ein drittes Bild angezeigt werden und zwar nur dieses. Ein hin-und herschalten der 2 Bilder habe ich schon mit 2 Timern gelöst, aber das mit dem 3. Bild, da hab ich keine Idee. Das ist der Quellcode mit den Bildern:
void __fastcall TForm2::Timer1Timer(TObject *Sender) { Image2->Picture->LoadFromFile("01_2.bmp"); Timer2->Enabled=true; Timer1->Enabled=false; DoubleBuffered=true; } //--------------------------------------------------------------------------- void __fastcall TForm2::Timer2Timer(TObject *Sender) { Image2->Picture->LoadFromFile("01.bmp"); Timer1->Enabled=true; Timer2->Enabled=false; DoubleBuffered=true; }Wäre dankbar für jeden Lösungsansatz.
Edit:
Bitte aussagekräftige Überschriften wählen, und bitte die Code-Tags verwenden. Danke!
-
ein timer:
void __fastcall TForm2::Timer1Timer(TObject *Sender) { static int counter = 0; if(counter<60) { if(counter % 2 ==0) Image2->Picture->LoadFromFile("erstesbild.bmp"); else Image2->Picture->LoadFromFile("zweitesbild.bmp"); } else Image2->Picture->LoadFromFile("drittesbild.bmp"); counter++; }so ists doch einfacher
-
Hab zwar aktuell nichts mehr mit BCB am Hut, aber grob würde ich es so machen:
Alle Bilder in eine ImageList.
Einen Timer auf 1 sec einstellen.
Im OnTimer Ereignis eine statische Variable "static int count=0;" immer um 1 incrementieren.
Abfrage "count%2" also ob gerade oder ungerade dann jeweiliges Bild zuweisen.
Wenn count>59 "EndBild" anzeigen und Timer aus.
-
zu langsam ...

-
oder gleich so, dann wird nach einer Minute nicht unnötig jede Sekunde ein Bild geladen
void __fastcall TForm2::Timer1Timer(TObject *Sender) { static int counter = 0; if(counter<60) { if(counter % 2) Image2->Picture->LoadFromFile("zweitesbild.bmp"); else Image2->Picture->LoadFromFile("erstesbild.bmp"); } else { Image2->Picture->LoadFromFile("drittesbild.bmp"); Timer1->Enabled=false; } counter++; }