Entwickler-Ecke

Multimedia / Grafik - in der Image Komponente immer ein andrese Bild


patrick dee - Mi 14.03.07 13:55
Titel: in der Image Komponente immer ein andrese Bild
Hi Leute,

jede Stunde wird bei einem Program von mir in einem Image auf einem
Panel ein Bild angezeigt. Nun wie stelle ich es an das ich zb in einem Ordner 6
Bilder *.jpg habe diese per Zufall in das Image geladen werden ???

also somit jede Stunde wenn das Panel mit dem Image drauf sichtbar wird, ein anderes Bild aus dem Ornder geladen wird ?

Danke und einen scjönen Tag

Patrick


Narses - Mi 14.03.07 14:37

Moin!

Bilde beim Programmstart eine Liste der Bilder im Ordner und geh diese einfach immer wieder von Vorne nach Hinten durch, fertig. Meinst du über 6 Stunden können sich die Leute merken, welche Reihenfolge die Bilder hatten... ?! :P Vorteil: Die Anzeigehäufigkeit ist so immer gleich.

Ansatz: Wenn da wirklich ein Zufallsmoment drin sein MUSS(!), dann lauf die Liste durch und mach vor dem nächsten Durchgang einen Miller-Yates über die Liste. ;)

cu
Narses


Logikmensch - Mi 14.03.07 14:43

Hallo,

sieht so aus, als machtest Du eine Art Bildschirmschoner, der z.B. nebenbei Fotos aus einem bestimmten Ordner auf der Festplatte anzeigt.
Ich würde Dir empfehlen, vor dem Start Deiner 1-stündigen Intervalle mit FindFirst-FindNext-FindClose die Dateien des Ordners vor dem Start Deines Programms zu ermitteln und in einer TStringList zu speichern. Da kannst Du z.B. auch mit Sorted:=true die Dateinamen sortieren, falls Du das willst. Beim Start Deines Zyklus fängst Du beim Index 0 der Stringliste an, lädst die erste eingetragene Datei (immer vorher prüfen, ob noch auf der Festplatte!!!) in deine Image-Komponente und erhöhst dann einen Zähler um 1. Erreichst Du beim Zähler den Wert der Anzahl der Bilder (index=StringList.Count), dann setzt Du den Zähler/Index wieder auf 0 und die Sache beginnt von vorn. Ach ja: Wenn ein Bild nicht geladen werden konnte, gleich zum nächsten Zyklus gehen, sonst dauert es für das nächste Bild 2 Stunden. :-)

Viel Erfolg. Ich hoffe, es hilft weiter.