Newsgroup: it.comp.lang.delphi
Titolo: Slideshow

Buongiorno!
Ho scritto un'applicazione semplicissima che non ha altra funzione se
non quella di eseguire uno slideshow di immagini BMP salvate in un
folder ed il cui fullpath e` memorizzato in una TStringList popolata
all'avvio del programma e contenuta nella struttura:
  tPlaylist = Record
    Durata  : Integer;      //Durata di proiezione in secondi
    Lista   : TStringList;    // Elenco dei file da proiettare
    Current : Integer;      // indice nell'elenco del file corrente 
  End;
Uso una TImage per le immagini ed un TTimer impostato in questi test a
10 secondi ( sPL.Durata = 10 ).
Sull'evento OnTimer viene eseguito semplicemente questo codice:
  If Not VideoAlarm.Enabled
   Then Begin
    // Startup della funzione Playlist
    VideoAlarm.Interval := sPL.Durata * 1000;
    sPL.Current := 0; // Prima voce in elenco
    PlayMedia( sPL.Lista.Strings[ sPL.Current ] );
    VideoAlarm.Enabled := True;
   End
   Else Begin
    // Cambio di diapositiva
    VideoAlarm.Enabled := False;    
    Inc( sPL.Current );
    If sPL.Current = sPL.Lista.Count Then sPL.Current := 0; // Reset
    PlayMedia( sPL.Lista.Strings[ sPL.Current ] );
    VideoAlarm.Enabled := True;
   End;  
Se eseguo su un normale PC (indipendentemente dal SO dato che ho
provato su XP Pro, Vista e Server 2003) non ho problemi, ma se provo
su XP Embedded invece ho che in maniera randomica l'applicazione si
pianta mandando in blocco completo anche il Sistema Operativo tanto
che l'unica cosa che posso fare e` riavviare l'unita`. 
Con randomico intendo che non avviene necessariamente sulla stessa
immagine (sono 6 quelle che sto ciclando) e non avviene dopo che e`
trascorso lo stesso tempo (si e` passati da un crash alla seconda
slide dopo 10 secondi ad uno che e` avvenuto dopo oltre 30 minuti).
Non mi sembra ci siano problemi di memory leak dato che la memoria
available dal task manager risulta pressoche` la stessa anche dopo un
centinaio di slide.
Non viene segnalato alcun errore a video ed il blocco avviene con
l'immagine che viene mostrata bene solo parzialmente, poi una zona in
cui l'immagine e` presente con delle alterazioni e poi una parte nera.
Un po` quello che capita visualizzando un JPG con dei pixel corrotti.
L'applicazione e` compilata con Delphi 2007, XPE e` installato su
Flash Disk con funzionalita` EWF attivata (ma il problema si e`
presentato anche senza EWF) ed immagini e software sono installati su
un HDD supplementare e quindi non su Flash.
Qualcuno ha qualche suggerimento da darmi?
----
MaHi

> Qualcuno ha qualche suggerimento da darmi?
vedere su msdn le differenze tra xp e xpe.
magari il codice che hai scritto usa in modo implicito delle cose non
supportate su xpe....
..cmq, continuo a chiedermi xche tanta avversione nell'usare classi e
non tipi record......
A.

non tipi record......
Penso che sia un'abitudine. Ho c ominciato con il Turbo Pascal 3.2 e
lavoravo solo con i record e "pigramente" sono rimasto affezionato
alle vecchie cose.
Tu pensa che la maggior parte dei componenti VCL di Delphi li uso alla
stessa maniera in cui lavoravo con la versione 4 o forse 3.
Mi sono accorto dopo anni che esisteva la TLabelEdit.... ed io che
continuo a mettere una label ed una edit...
Grazie.
----
MaHi

 continuo a mettere una label ed una edit...
Se è per questo, anche io lo faccio... non ho mai usato una tlabeledit..
-- 
Morde