Autor Beitrag
patrick dee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Mi 14.03.07 13:55 
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

_________________
Glauben heißt nichts wissen ...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
Logikmensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: 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.

_________________
Es gibt keine Probleme - nur Lösungen!