Page 1 sur 1

charger image en mémoire

Publié : lun. 30/janv./2006 14:24
par david
simple mais alors je crois que j'ai du... dans les yeux
ci-après une partie de mon prog
1. il liste les fichiers JPG et BMP et les conserve en memoire
2. il en prend un de manière aléatoire
mais alors pourquoi à la question RESULTAT = 0 et qu'il ne charge pas mon image ?????? j'ai du oublié un truc évident, mais alors quoi?????




UseJPEGImageDecoder () ;***DECODEUR JPEG

Enumeration
#Window_0
#Button_1
#Button_2
#Button_3
#String_0
#Button_4
#Button_5
#Button_6
#Button_7
#Button_8
#Button_9
#image_gadget1 ;arriere plan
#image1 ;gaby1
#image2 ;gaby2
#image0 ; image variable...
#TrackBar_0
#TrackBar_10

#Path_0
#Button_11

EndEnumeration

chemin$ = "C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle"




NewList Maliste.s()

If ExamineDirectory (0, chemin$, "*.*" )
Repeat
FileType = NextDirectoryEntry()
If FileType = 1
FileName$ = DirectoryEntryName ()
ext$= UCase ( GetExtensionPart (fileName$))
If ext$= "JPG" Or ext$= "JPEG" Or ext$= "BMP"
AddElement (Maliste()) : Maliste()=FileName$
EndIf
EndIf
Until FileType = 0
Else
MessageRequester ( "Erreur" , "impossible de créer la liste" + Chr (10)+ "veuillez reconfigurer les paramètres..." )
EndIf

Compteur = CountList (Maliste())
Debug Compteur ; affiche le nombre de fichier trouvé

;*******************************************
;*** affiche aléatoirement Maliste(x) ***
;*******************************************

If Compteur>0
SelectElement (Maliste(), Random (compteur))
imageencour$=#CRLF$ +Maliste()

MessageRequester ( "!!!!" , chemin$+"\"+imageencour$ )

resultat = LoadImage ( #image0 , chemin$+"\"+imageencour$ ) ;
If resultat = 0
MessageRequester ( "!!!!" , "pas chargee" )
EndIf

Publié : lun. 30/janv./2006 14:56
par comtois
je n'ai pas tout regardé , mais que vient faire le #CRLF$ dans

Code : Tout sélectionner

imageencour$=#CRLF$ +Maliste() 

Sinon , quand tu postes un code ça serait bien que tu utilises les balises Code

Edit ton post , et regarde en haut , il y a des boutons , dont un qui s'appelle code , tu sélectionnes ton programme et ensuite tu cliques sur Code , et oh joie , oh bonheur , ton post devient tout de suite plus lisible :)

Publié : lun. 30/janv./2006 15:01
par olivier
Pourquoi tu as mis ce #CRLF$ + :
imageencour$=#CRLF$ +Maliste()

Enlève le et cela devrais aller mieux.

Bon courage.
Stef

Publié : lun. 30/janv./2006 15:04
par olivier
A chaque fois que j'essaye de répondre à un post pour contribuer aussi, le temps que je rédige ma réponse.... :?

Bon j'en ai marre, vous êtes trops rapide.



C'est ça que j'aime bien lorsque je suis en panne ! :P

Publié : lun. 30/janv./2006 15:11
par Flype

Code : Tout sélectionner

UsePNGImageDecoder()
UseJPEGImageDecoder()

Enumeration
  #Window_0
  #Button_1
  #Button_2
  #Button_3
  #String_0
  #Button_4
  #Button_5
  #Button_6
  #Button_7
  #Button_8
  #Button_9
  #image_gadget1
  #image1
  #image2
  #image0
  #TrackBar_0
  #TrackBar_10
  #Path_0
  #Button_11
EndEnumeration

;***********************************************
;*** Examine le dossier et remplit Maliste() ***
;***********************************************

chemin$ = "C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle"

NewList Maliste.s()

If ExamineDirectory (0,chemin$,"*.*")
  Repeat
    Select NextDirectoryEntry()
      Case 0
        Break
      Case 1
        FileName$ = DirectoryEntryName()
        FileExt$ = UCase(GetExtensionPart(FileName$))
        If FindString("JPG,JPEG,BMP,PNG",FileExt$,1)
          AddElement(Maliste())
          Maliste() = FileName$
        EndIf
    EndSelect
  ForEver
Else
  MessageRequester("Erreur","impossible de créer la liste"+#LF$+"Veuillez reconfigurer les paramètres...")
EndIf

;**********************************
;*** Vérification de Maliste(x) ***
;**********************************

Compteur = CountList(Maliste())

If Compteur
  MessageRequester("Information",Str(Compteur)+" images chargées.")
Else
  MessageRequester("Erreur","Aucune image chargée.")
  End
EndIf
  
;*******************************************
;*** Affiche aléatoirement Maliste(x) ***
;*******************************************

SelectElement(Maliste(),Random(Compteur))
  
If OpenWindow(0,0,0,640,480,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,chemin$+"\"+Maliste())
  
  If CreateGadgetList(WindowID())
    ImageGadget(#image_gadget1,5,5,630,460,0)
  EndIf
  
  If LoadImage(#image0,chemin$+"\"+Maliste())
    SetGadgetState(#image_gadget1,UseImage(#image0))
  EndIf
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow: Break
    EndSelect
  ForEver
  
EndIf
Je confirme - ca vient uniquement de ton #CRLF$ qui n'a rien à faire là.

c'était bien ça mais j'ai encore un pb

Publié : lun. 30/janv./2006 16:10
par david
j'ai essayé de modifier les paramètres de la Procedure AlertThread
mais ça plante à chaque fois. le but était que toute les x secondes
l'image Image#0 arrière plan du programme soit modifiée automatiquement mais rien n'y fait

code:
UseJPEGImageDecoder () ;***DECODEUR JPEG
UsePNGImageDecoder () ;
UseTGAImageDecoder () ;
UseTIFFImageDecoder () ;

;***********DECODE VARIABLES***********
chemin$="C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle"
a=0
textb=21
textb$=Str(textb)
taille=3
fenetre=tailley
transparent=75
taillex= 200
tailley = 200
posix = 200
posiy = 200
;
;
;
Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Declare SetWinTransparency(WinHandle.l, Transparency_Level.l)
Global bouton,flag,Handle

;- Gadget Constants
;
Enumeration
#Window_0
#Button_1
#Button_2
#Button_3
#String_0
#Button_4
#Button_5
#Button_6
#Button_7
#Button_8
#Button_9
#image_gadget1 ;arriere plan
#image1 ;gaby1
#image2 ;gaby2
#image0 ; image variable...
#TrackBar_0
#TrackBar_10
#TrackBar_2
#TrackBar_20

#Path_0
#Button_11

EndEnumeration
;
;
;************************************
;*** creation alerte timing *********
;************************************
Procedure AlertThread(Parameter)

Repeat
MessageRequester("Info", "Alert ("+Str(Parameter)+")", 0)
Delay(3000)
ForEver

EndProcedure

;************************************
;*** charge image programme *********
;************************************

LoadImage ( #image1 , path1$+"gaby1.jpg" ) ;image de depart
LoadImage ( #image2 , path2$+"gaby2.jpg" );image en cas de clic sur bouton
ResizeImage ( #image1 , 112*taille, 83*taille )
ResizeImage ( #image2 , 112*taille, 83*taille)


If OpenWindow ( #Window_0 , taillex, fenetre, posix, posiy, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Compteur Atouts" )
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ;fenetre toujours devant
Handle = WindowID (0)

If CreateGadgetList ( WindowID ())
ImageGadget ( #image_gadget1 , 2,34,100*taille,100*taille, UseImage ( #image1 ))

ButtonGadget ( #Button_8 , 42, 2, 60, 30, "visio" )

TextGadget (#TrackBar_10, 342,46,120, 30,"Niv. Transparence",#PB_Text_Center)
TrackBarGadget(#TrackBar_0, 342, 60, 120, 30, 25, 255)
SetGadgetState(#TrackBar_0, transparent)

; TextGadget (#TrackBar_20, 342,110,120, 30,"durée images",#PB_Text_Center)
; TrackBarGadget(#TrackBar_2, 342, 124, 120, 30, 25, 255)
; SetGadgetState(#TrackBar_2, delay)

StringGadget (#Path_0, 342, 180, 118, 24, chemin$)
ButtonGadget ( #Button_11 , 342, 194, 120, 20, "valider répertoire" )
EndIf


Repeat ;La boucle Repeat-Until sert à la gestion des évènements

SetWinTransparency ( WindowID (), transparent)

EventID.l= WaitWindowEvent () ; on récupère un évènement
Select EventID ; on sélectionne cet évènement
Case #PB_EventGadget ; cet évènement concerne une action sur un Gadget
Select EventGadgetID () ; dans ce cas, on récupère l'identifiant du gadget qui l'a créé

Case #Button_8 ;visionneuse charge images
CreateThread(@AlertThread(), 154)


;***********************************************
;*** Examine le dossier et remplit Maliste() ***
;***********************************************

NewList Maliste.s()

If ExamineDirectory (0,chemin$,"*.*")
Repeat
Select NextDirectoryEntry()
Case 0
Break
Case 1
FileName$ = DirectoryEntryName()
FileExt$ = UCase(GetExtensionPart(FileName$))
If FindString("JPG,JPEG,BMP,PNG",FileExt$,1)
AddElement(Maliste())
Maliste() = FileName$
EndIf
EndSelect
ForEver
Else
MessageRequester("Erreur","impossible de créer la liste"+#LF$+"Veuillez reconfigurer les paramètres...")
EndIf

;**********************************
;*** Vérification de Maliste(x) ***
;**********************************

Compteur = CountList(Maliste())

If Compteur
; MessageRequester("Information",Str(Compteur)+" images chargées.")
Else
MessageRequester("Erreur","Aucune image chargée.")
End
EndIf

;*******************************************
;*** Affiche aléatoirement Maliste(x) ***
;*******************************************

SelectElement(Maliste(),Random(Compteur))

If LoadImage(#image0,chemin$+"\"+Maliste())
ResizeImage ( #image0 , 112*taille, 83*taille )
SetGadgetState(#image_gadget1,UseImage(#image0))
EndIf



EndSelect

Case #PB_Event_CloseWindow ; cet évènement concerne la fermeture de la fenêtre
Quit=1
EndSelect

Until Quit=1
EndIf
;
;
;
Procedure SetWinTransparency(WinHandle.l, Transparency_Level.l)
SetWindowLong_ (WinHandle, #GWL_EXSTYLE , GetWindowLong_ (WinHandle, #GWL_EXSTYLE ) | $00080000) ; #WS_EX_LAYERED = $00080000
If OpenLibrary (0, "user32.dll" )
CallFunction (0, "SetLayeredWindowAttributes" , WinHandle, 0, Transparency_Level, 2)
CloseLibrary (0)
EndIf
EndProcedure

Publié : lun. 30/janv./2006 16:16
par Backup
comtois a écrit :
Sinon , quand tu postes un code ça serait bien que tu utilises les balises Code

Edit ton post , et regarde en haut , il y a des boutons , dont un qui s'appelle code , tu sélectionnes ton programme et ensuite tu cliques sur Code , et oh joie , oh bonheur , ton post devient tout de suite plus lisible
:)
je me permet de le rendre plus lisible , parcequ'a priori , il a pas vu :lol:

désolé

Publié : lun. 30/janv./2006 16:43
par david
ne t'énerves pas mais je ne trouves pas le bouton code....

Publié : lun. 30/janv./2006 17:19
par Dr. Dri
Dans ce cas tu le fais manuellement...
Il faut mettre ton code purebasic entre des balises code

Code : Tout sélectionner

[code]ton code pb
[/code]

Dri ;)

Publié : lun. 30/janv./2006 17:29
par Chris
Le bouton "Code", il est au dessus de la fenêtre ou tu écris ton message, et dedans, il y a écrit.... "Code"

pb changement image

Publié : lun. 30/janv./2006 21:38
par david
j'ai bien trouvé le bouton merci
ci-après le code :

Code : Tout sélectionner


UseJPEGImageDecoder ()  ;***DECODEUR JPEG 
UsePNGImageDecoder ()   ; 
UseTGAImageDecoder ()   ; 
UseTIFFImageDecoder ()  ; 

;***********DECODE VARIABLES*********** 
chemin$="C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle" 
a=0 
textb=21 
textb$=Str(textb) 
taille=3 
fenetre=tailley 
transparent=75 
taillex= 200 
tailley = 200 
posix = 200 
posiy = 200 
; 
; 
; 
Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l) 
Declare SetWinTransparency(WinHandle.l, Transparency_Level.l) 
Global bouton,flag,Handle 

;- Gadget Constants 
; 
Enumeration 
   #Window_0 
   #Button_1 
   #Button_2 
   #Button_3 
   #String_0 
   #Button_4 
   #Button_5 
   #Button_6 
   #Button_7 
   #Button_8 
   #Button_9 
    #image_gadget1 ;arriere plan 
    #image1 ;gaby1 
    #image2 ;gaby2 
    #image0 ; image variable... 
#TrackBar_0 
#TrackBar_10 
#TrackBar_2 
#TrackBar_20 

   #Path_0 
   #Button_11 
    
EndEnumeration 
; 
; 
;************************************ 
;*** creation alerte timing ********* 
;************************************ 
Procedure AlertThread(Parameter) 

  Repeat 
    MessageRequester("Info", "Alert ("+Str(Parameter)+")", 0) 
    Delay(3000) 
  ForEver 

EndProcedure 

;************************************ 
;*** charge image programme ********* 
;************************************ 

LoadImage ( #image1 , path1$+"gaby1.jpg" ) ;image de depart 
LoadImage ( #image2 , path2$+"gaby2.jpg" );image en cas de clic sur bouton 
ResizeImage ( #image1 , 112*taille, 83*taille ) 
ResizeImage ( #image2 , 112*taille, 83*taille) 


If OpenWindow ( #Window_0 , taillex, fenetre, posix, posiy, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Compteur Atouts" ) 
 SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ;fenetre toujours devant 
    Handle = WindowID (0) 
      
     If CreateGadgetList ( WindowID ()) 
         ImageGadget ( #image_gadget1 , 2,34,100*taille,100*taille, UseImage ( #image1 )) 
  
      ButtonGadget ( #Button_8 , 42, 2, 60, 30, "visio" ) 
  
       TextGadget    (#TrackBar_10, 342,46,120, 30,"Niv. Transparence",#PB_Text_Center) 
       TrackBarGadget(#TrackBar_0, 342, 60, 120, 30, 25, 255) 
       SetGadgetState(#TrackBar_0, transparent) 
        
  ;            TextGadget    (#TrackBar_20, 342,110,120, 30,"durée images",#PB_Text_Center) 
  ;     TrackBarGadget(#TrackBar_2, 342, 124, 120, 30, 25, 255) 
  ;     SetGadgetState(#TrackBar_2, delay) 
    
      StringGadget  (#Path_0,  342, 180, 118, 24, chemin$) 
      ButtonGadget ( #Button_11 , 342, 194, 120, 20, "valider répertoire" ) 
     EndIf 
  

      Repeat  ;La boucle Repeat-Until sert à la gestion des évènements 

      SetWinTransparency ( WindowID (), transparent)        
  
        EventID.l= WaitWindowEvent () ; on récupère un évènement 
         Select EventID ; on sélectionne cet évènement 
             Case #PB_EventGadget ; cet évènement concerne une action sur un Gadget 
                 Select EventGadgetID () ; dans ce cas, on récupère l'identifiant du gadget qui l'a créé 

                  Case #Button_8 ;visionneuse charge images 
                 CreateThread(@AlertThread(), 154) 

            
;*********************************************** 
;*** Examine le dossier et remplit Maliste() *** 
;*********************************************** 

NewList Maliste.s() 

If ExamineDirectory (0,chemin$,"*.*") 
  Repeat 
    Select NextDirectoryEntry() 
      Case 0 
        Break 
      Case 1 
        FileName$ = DirectoryEntryName() 
        FileExt$ = UCase(GetExtensionPart(FileName$)) 
        If FindString("JPG,JPEG,BMP,PNG",FileExt$,1) 
          AddElement(Maliste()) 
          Maliste() = FileName$ 
        EndIf 
    EndSelect 
  ForEver 
Else 
  MessageRequester("Erreur","impossible de créer la liste"+#LF$+"Veuillez reconfigurer les paramètres...") 
EndIf 

;********************************** 
;*** Vérification de Maliste(x) *** 
;********************************** 

Compteur = CountList(Maliste()) 

If Compteur 
;  MessageRequester("Information",Str(Compteur)+" images chargées.") 
Else 
  MessageRequester("Erreur","Aucune image chargée.") 
  End 
EndIf 
  
;******************************************* 
;*** Affiche aléatoirement Maliste(x) *** 
;******************************************* 

SelectElement(Maliste(),Random(Compteur)) 
  
  If LoadImage(#image0,chemin$+"\"+Maliste()) 
  ResizeImage ( #image0 , 112*taille, 83*taille ) 
    SetGadgetState(#image_gadget1,UseImage(#image0)) 
  EndIf 
      
  
                    
                   EndSelect 
                  
             Case #PB_Event_CloseWindow ; cet évènement concerne la fermeture de la fenêtre 
                Quit=1 
         EndSelect 
          
     Until Quit=1 
EndIf 
; 
; 
; 
Procedure SetWinTransparency(WinHandle.l, Transparency_Level.l) 
     SetWindowLong_ (WinHandle, #GWL_EXSTYLE , GetWindowLong_ (WinHandle, #GWL_EXSTYLE ) | $00080000) ; #WS_EX_LAYERED = $00080000 
     If OpenLibrary (0, "user32.dll" ) 
         CallFunction (0, "SetLayeredWindowAttributes" , WinHandle, 0, Transparency_Level, 2) 
         CloseLibrary (0) 
     EndIf 
EndProcedure 
si quelqu'un pouvait m'aider car je ne m'en sort vraiment pas.
je n'arrive pas a modifier AlertTread pour charger et afficher toutes les x secondes une image de ma liste en mémoire

Publié : lun. 30/janv./2006 21:48
par comtois
Il y a un autre bouton qu'il va falloir que tu trouves, c'est le bouton [Editer] :wink:

Publié : lun. 30/janv./2006 22:07
par Flype
tu as effectivement plusieurs erreurs dans ton code:
1/ NewList dans une boucle est proscrit, les listes étant 'globales' ont les créées une fois pour toute en haut du source.
2/ Relancer le CreateThread() à chaque clic sur le bouton n'est pas bon non plus.
3/ SetWinTransparency ( WindowID (), transparent) à chaque itération aussi est très gourmand en processeur parceque des évenements ta boucle en digère des centaines par secondes (mouvement de la souris par ex)
4/ Dans ton cas, je te conseille plus l'utilisation des Timers.

Code : Tout sélectionner

UseJPEGImageDecoder ()  ;***DECODEUR JPEG 
UsePNGImageDecoder ()   ; 
UseTGAImageDecoder ()   ; 
UseTIFFImageDecoder ()  ; 

;***********DECODE VARIABLES*********** 
chemin$="C:\Documents and Settings\David\Mes documents\Mes images\Gabrielle" 
a=0 
textb=21 
textb$=Str(textb) 
taille=3 
fenetre=tailley 
transparent=75 
taillex= 200 
tailley = 200 
posix = 200 
posiy = 200
delay=1000
; 
; 
; 
Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l) 
Declare SetWinTransparency(WinHandle.l, Transparency_Level.l) 
Global bouton,flag,Handle 

;- Gadget Constants 
; 
Enumeration 
  #Window_0 
  #Button_1 
  #Button_2 
  #Button_3 
  #String_0 
  #Button_4 
  #Button_5 
  #Button_6 
  #Button_7 
  #Button_8 
  #Button_9 
  #image_gadget1 ;arriere plan 
  #image1 ;gaby1 
  #image2 ;gaby2 
  #image0 ; image variable... 
  #TrackBar_0 
  #TrackBar_10 
  #TrackBar_2 
  #TrackBar_20 
  
  #Path_0 
  #Button_11 
  
EndEnumeration

NewList Maliste.s() 
  
;************************************ 
;*** charge image programme ********* 
;************************************ 

If OpenWindow ( #Window_0 , taillex, fenetre, posix, posiy, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Compteur Atouts" ) 
  SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ;fenetre toujours devant 
  Handle = WindowID (0) 
  
  If CreateGadgetList ( WindowID ()) 
    ImageGadget ( #image_gadget1 , 2,34,100*taille,100*taille,0) 
    
    ButtonGadget ( #Button_8 , 42, 2, 60, 30, "visio" ) 
    
    TextGadget    (#TrackBar_10, 342,46,120, 20,"Niv. Transparence",#PB_Text_Center) 
    TrackBarGadget(#TrackBar_0, 342, 60, 120, 30, 25, 255) 
    SetGadgetState(#TrackBar_0, transparent) 
    
    TextGadget    (#TrackBar_20, 342,110,120, 20,"durée images",#PB_Text_Center) 
    TrackBarGadget(#TrackBar_2, 342, 124, 120, 30, 25, 5000) 
    SetGadgetState(#TrackBar_2, delay) 
    
    StringGadget  (#Path_0,  342, 180, 118, 24, chemin$) 
    ButtonGadget ( #Button_11 , 342, 194, 120, 20, "valider répertoire" ) 
  EndIf 
  
  SetTimer_(WindowID(),1,delay,0)
  
  Repeat  ;La boucle Repeat-Until sert à la gestion des évènements 
    
    Select WaitWindowEvent () ; on sélectionne cet évènement 
      
      Case #WM_TIMER ; cet évènement concerne le timer
        
        ;******************************************* 
        ;*** Affiche aléatoirement Maliste(x) *** 
        ;******************************************* 
        
        If CountList(Maliste())
          
          SelectElement(Maliste(),Random(Compteur)) 
          
          If IsImage(#image0)
            FreeImage(#image0)
          EndIf
          
          If LoadImage(#image0,chemin$+"\"+Maliste()) 
            ResizeImage ( #image0 , 112*taille, 83*taille ) 
            SetGadgetState(#image_gadget1,UseImage(#image0)) 
          EndIf
          
        EndIf
        
      Case #PB_EventGadget ; cet évènement concerne une action sur un Gadget 
        
        Select EventGadgetID () ; dans ce cas, on récupère l'identifiant du gadget qui l'a créé 
          
          Case #TrackBar_0
            transparent = GetGadgetState(#TrackBar_0)
            SetGadgetText(#TrackBar_10,"Transparence: "+Str(transparent)+"/255")
            SetWinTransparency(WindowID(),transparent)
            
          Case #TrackBar_2
            delay = GetGadgetState(#TrackBar_2)
            SetGadgetText(#TrackBar_20,"Intervalle: "+Str(delay)+" ms")
            KillTimer_(WindowID(),1)
            SetTimer_(WindowID(),1,delay,0)
            
          Case #Button_8 ;visionneuse charge images 
            
            ;*********************************************** 
            ;*** Examine le dossier et remplit Maliste() *** 
            ;*********************************************** 
            
            ClearList(Maliste())
            
            If ExamineDirectory (0,chemin$,"*.*") 
              Repeat 
                Select NextDirectoryEntry() 
                  Case 0 
                    Break 
                  Case 1 
                    FileName$ = DirectoryEntryName() 
                    FileExt$ = UCase(GetExtensionPart(FileName$)) 
                    If FindString("JPG,JPEG,BMP,PNG",FileExt$,1) 
                      AddElement(Maliste()) 
                      Maliste() = FileName$ 
                    EndIf 
                EndSelect 
              ForEver 
            Else 
              MessageRequester("Erreur","impossible de créer la liste"+#LF$+"Veuillez reconfigurer les paramètres...") 
            EndIf 
            
            ;********************************** 
            ;*** Vérification de Maliste(x) *** 
            ;********************************** 
            
            Compteur = CountList(Maliste()) 
            
            If Compteur 
              MessageRequester("Information",Str(Compteur)+" images chargées.") 
            Else 
              MessageRequester("Erreur","Aucune image chargée.") 
            EndIf 
            
        EndSelect 
        
      Case #PB_Event_CloseWindow ; cet évènement concerne la fermeture de la fenêtre 
        Quit=1 
    EndSelect 
    
  Until Quit=1 
EndIf 
;
KillTimer_(WindowID(),1)
; 
Procedure SetWinTransparency(WinHandle.l, Transparency_Level.l) 
  SetWindowLong_ (WinHandle, #GWL_EXSTYLE , GetWindowLong_ (WinHandle, #GWL_EXSTYLE ) | $00080000) ; #WS_EX_LAYERED = $00080000 
  If OpenLibrary (0, "user32.dll" ) 
    CallFunction (0, "SetLayeredWindowAttributes" , WinHandle, 0, Transparency_Level, 2) 
    CloseLibrary (0) 
  EndIf 
EndProcedure