Re: Problème de timer ( enfin de KillTimer_ )
Publié : lun. 26/oct./2009 23:50
Oui on en est venu à la même conclusion avec Dobro, les thread sont mieux appropriés ici.
Donc ta modif fonctionne relativement bien, Merci !
Par contre, je ne sais pas pourquoi mais casiment tout le temps, si je lance le programme et que je glisse/depose un dossier, rien ne se passe et ça affiche que l'opération est terminé, ensuite, si je reglisse un dossier ça fonctionne (et toutes les autres fois après d'ailleurs). Mais si je quitte le programme et que je recommence, pareil. très bizarre.
Revoilà le bouzin en l'état (sauf son)
Donc ta modif fonctionne relativement bien, Merci !

Par contre, je ne sais pas pourquoi mais casiment tout le temps, si je lance le programme et que je glisse/depose un dossier, rien ne se passe et ça affiche que l'opération est terminé, ensuite, si je reglisse un dossier ça fonctionne (et toutes les autres fois après d'ailleurs). Mais si je quitte le programme et que je recommence, pareil. très bizarre.
Revoilà le bouzin en l'état (sauf son)
Code : Tout sélectionner
;Resizier par Ar-S -2009 // PB 4.30
InitSound () ; initialisation du son
#Son =1
UseJPEGImageEncoder()
UseJPEGImageDecoder()
Enumeration
#AFF : #Image : #t1
EndEnumeration
;}
Global TailleHauteur.l=1024
Global L.l,H.l,Limg.l,Himg.l,compte
Global DernierDossier$,NouveauRep$,car$,pos,fin
Declare Clignote(d.i)
Procedure Clignote(d.i)
Static mode=0
Repeat
Select mode
Case 0
SetGadgetText(#AFF,"* Traitement en cours image > "+Str(compte))
Case 1
SetGadgetText(#AFF,"* Traitement en cours image >>> "+Str(compte))
EndSelect
mode = 1-mode
Delay(d)
ForEver
EndProcedure
OpenWindow(0, 583, 629, 319, 23, "LDVM redim 1024 haut relatif", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
StickyWindow(0,1)
CatchSound ( #Son , ?chimes_wav_Start , ?chimes_wav_End)
StringGadget(#AFF, 0, 0, 315, 20, "Glissez/déposez les images ici",#PB_String_ReadOnly)
EnableWindowDrop(0, #PB_Drop_Files, #PB_Drag_Copy)
;{- Event loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #AFF
EndSelect
Case #PB_Event_WindowDrop
thread=CreateThread(@Clignote(),200)
Debug EventDropFiles()
compte=0
Repertoire$=EventDropFiles()
RepSav$=Repertoire$+"\"
pos=1
NumCar=Len(Repertoire$)
Repeat
car$=Right(Repertoire$,pos)
If Left(car$,1)<>"\"
pos=pos+1
car$=Right(Repertoire$,pos)
Else
Debug "Car : "+car$
Debug "Pos : "+Str(pos)
EndIf
Until Left(car$,1)="\"
DernierDossier$=Right(car$,pos-1)
NouveauRep$=RepSav$+DernierDossier$+"\"
nouveauRep=CreateDirectory(NouveauRep$)
If nouveauRep
Debug "Fin : "+Str(fin)+" (0=on ; 1=off)"
If ExamineDirectory(NumDir, Repertoire$, "*.jpg")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
compte=compte+1
;txtListe$="AddGadgetItem(#list, 0, "+Chr(34)+DernierDossier$+Chr(34)+")"
SetClipboardText(DernierDossier$)
NomRepertoire$ = EventDropFiles()
fichier$=DirectoryEntryName(0)
charge=LoadImage(#Image, RepSav$+fichier$)
If charge
Limg=ImageWidth(#Image):Himg=ImageHeight(#Image)
H=TailleHauteur : L=Limg*TailleHauteur/Himg
NomNew$=Str(compte)+".jpg"
ResizeImage(#Image,L,H,#PB_Image_Smooth)
SaveImage(#Image,NouveauRep$+NomNew$,#PB_ImagePlugin_JPEG,75)
WindowEvent()
;Delay(10)
Else
SetGadgetText(#AFF,"Erreur de chargement de L'image")
EndIf
Else
Debug "aucune image jpg"
EndIf
Wend
FinishDirectory(0)
EndIf
Else
Debug "creation de dossier impossible"
EndIf
PlaySound ( #Son ,1)
Delay (600)
StopSound(#Son)
;KillThread(thread)
If IsThread(thread)
KillThread(thread)
EndIf
SetGadgetText(#AFF,"Terminé ! "+Str(compte)+" images traitées")
Case #PB_Event_CloseWindow
Select EventWindow()
Case 0
If IsThread(thread)
KillThread(thread)
EndIf
CloseWindow(0)
Break
EndSelect
EndSelect
ForEver