000
05.11.2007, 13:57 Uhr
Marian Schrader
|
Hi, ich möchte auf einer Party die Bilder derselbigen als Slideshow zeigen. Natürlich kommen während der Party Bilder dazu, es gibt jedoch keine Slideshow, die überprüft, ob neue Inhalte hinzugekommen sind. Also muss man die Slideshow, nachdem man neue Bilder in den Quellordner kopiert hat, neu starten. Das nervt mich!
Ich möchte also eine kleines Slideshow-Proggy basteln, dass nach einem Durchlauf den Ordner erneut scannt und so neue Inhalte ohne einen Neustart der Diashow automatisch mit anzeigt. (Echt krass, dass es anscheinend im ganze Web sowas nicht gibt)
Dürfte auch kein Problem sein. Ich stehe jedoch noch ziemlich am Anfang. Mein bisheriger Stand ist, dass man einen Ordner auswählt und daraufhin der Inhalt als Slideshow abgespielt wird. ABER es gibt da ein Problem, die Speicherbelegung! Mal kurz mein Code:
C++: |
this->aBilder = System::IO::Directory::GetFiles(this->folderBrowserDialog1->SelectedPath, L"*.jpg"); int x = this->aBilder->Length; for (int i = 0; i < x; i++) { this->panel1->BackgroundImage = System::Drawing::Image::FromFile(this->aBilder[i]); this->panel1->Refresh(); }
|
aBilder ist ein String-Array. Die Schleife ist nur ein Test; wird später mit Timern geregelt
Obwohl ich in meinem Ordner 21 Bilder habe (73MB) verbraucht mein kleines Produkt satte 430MB Speicher.
Ich vermute, dass mein panel1 die Ressourcen nicht frei gibt, wenn ich ein neues Bild als Hintergund zuweise? Ist das korrekt? Wenn ja, wie schaffe ich das? Wenn nicht, kann mich einer aufklären? |