Egalement, il buggue quand il perd le focus et le retrouve
Le beep_() est la pour prouver que la routine continue a boucler et que c'est les ProgressBarGadget qui s'arretent de se dessiner...
Code: Select all
If OpenWindow(0, 0, 0, 320, 160, "ProgressBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Repeat
i+1
i%100
ProgressBarGadget(0, 10, 30, 250, 30, 0, 100)
SetGadgetState (0, i) ; change la valeur de la 1ère barre de progression (ID = 0) à 50 sur 100
j+1
j%182
ProgressBarGadget(1, 10, 90, 250, 30, 0, 182, #PB_ProgressBar_Smooth)
SetGadgetState (1, j) ; change la valeur de la 2ème barre de progression (ID = 1) à 50 sur 200
k+1
k%217
ProgressBarGadget(2, 270, 10, 30, 120, 0, 217, #PB_ProgressBar_Vertical)
SetGadgetState (2, k) ; change la valeur de la 3ème barre de progression (ID = 2) à 100 sur 300
If i=0
Beep_(1500,50)
EndIf
Delay(5)
ForEver
EndIf
Voici un logiciel qui buggue :
Code: Select all
UseJPEGImageEncoder()
UseJPEGImageDecoder()
UseGIFImageDecoder()
UsePNGImageDecoder()
OpenWindow(0, 0, 0, 749, 486+12, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If LoadImage(0, "c:\SPH\PB\titre.bmp") ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
ImageGadget(0, 10, 10, 728, 53, ImageID(0)) ; imagegadget standard
EndIf
Global Repertoire$
calcul=0
ExplorerTreeGadget(1, 11, 73, 360, 300, Repertoire$, #PB_Explorer_NoFiles)
ExplorerListGadget(2, 377,73,360,300, "*.jpg;*.jpeg;*.bmp;*.gif;*.png", #PB_Explorer_NoFolders|#PB_Explorer_NoParentFolder)
FrameGadget(3, 11, 380, 727,65, "", #PB_Frame_Single)
;titre
TextGadget(4, 20, 388,90,20,"Titre de la page :")
StringGadget(5, 20, 410, 150, 20, "")
;vignettes
CheckBoxGadget(6, 200, 388, 70, 20, " Vignettes :")
SetGadgetState(6, #PB_Checkbox_Checked)
TrackBarGadget(8, 200, 410, 180, 25, 0, 12, #PB_TrackBar_Ticks)
SetGadgetState(8, 6)
TextGadget(7, 285, 391, 95, 17, Str(37+GetGadgetState(8)*16)+" pixels de large")
;colonnes
TextGadget(9, 410, 388,50,20,"Colonnes :")
SpinGadget (10, 410, 410, 45, 25, 1, 100)
SetGadgetState (10, 8) : SetGadgetText(10, "8") ; définit la valeur initiale
;papier peint
CheckBoxGadget(11, 490, 388, 80, 20, " Papier peint :")
SetGadgetState(11, #PB_Checkbox_Checked)
ButtonGadget(13, 500, 412, 70, 18, "Couleur")
;14 image fong.gif
If CreateImage(14, 32,32) And StartDrawing(ImageOutput(14))
For x = 0 To 31
For y = 0 To 31
Plot(X, Y, RGB(255,255,255))
Next y
Next x
StopDrawing()
ImageGadget(14, 580, 394, 32, 32, ImageID(14))
EndIf
;visualiser
CheckBoxGadget(15, 650, 388, 80, 20, " Visualiser")
SetGadgetState(15, #PB_Checkbox_Checked)
;generer le html
ButtonGadget(16, 10, 450+15, 729, 28, "Générer la page")
;progressbar
ProgressBarGadget(17, 110, 453, 529, 8, 0, 100)
;ImageGadget(0, 10, 10, 728, 53, ImageID(0)) ; imagegadget standard
Procedure Afficher_fichiers()
SetGadgetText(2, "") ; Vider la liste des fichiers
Repertoire$ = GetGadgetText(1) ; Voir quel est le répertoire sélectionné
SetGadgetText(2, Repertoire$) ; Remplir la liste avec le répertoire
EndProcedure
; Si clic gauche sur l'arbre ou déplacement avec les flèches, alors afficher les fichiers dans la fenêtre liste fichiers
BindGadgetEvent(1, @Afficher_fichiers(), #PB_EventType_Change) ; #PB_EventType_LeftClick)
;Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Repeat
Evenement = WaitWindowEvent()
If Evenement = #PB_Event_Gadget
If EventGadget() = 10
SetGadgetText(10,Str(GetGadgetState(10)))
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If EventGadget() = 8 ;Il faut indiquer le bon gadget
SetGadgetText(7, Str(37+GetGadgetState(8)*16)+" pixels de large")
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If EventGadget() = 13
couleur=ColorRequester()
r=Red(couleur)
v=Green(couleur)
b=Blue(couleur)
Restore fond
If StartDrawing(ImageOutput(14)); And couleur>=0
For u=0 To 31
For i=0 To 31
Read.b c.b
If c=1
If r=255
rr=r-Random(50)
Else
rr=r+Random(50)
EndIf
If v=255
vv=v-Random(50)
Else
vv=v+Random(50)
EndIf
If b=255
bb=b-Random(50)
Else
bb=b+Random(50)
EndIf
Plot(i,u,RGB(rr,vv,bb))
Else
If r>235
rr=r-10-Random(50)
Else
rr=r+10+Random(50)
EndIf
If v>235
vv=v-10-Random(50)
Else
vv=v+10+Random(50)
EndIf
If b>235
bb=b-10-Random(50)
Else
bb=b+10+Random(50)
EndIf
Plot(i,u,RGB(rr,vv,bb))
EndIf
Next
Next
StopDrawing()
ImageGadget(14, 580, 394, 32, 32, ImageID(14))
EndIf
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If EventGadget() = 16 And calcul=0
calcul=1
cmb=0
If ExamineDirectory(0, Repertoire$, "*.*")
If CreateFile(0, Repertoire$+"index.html")
Else
MessageRequester("Erreur","Fabrication HTML impossible") : End
EndIf
WriteStringN(0,"<!doctype html>")
WriteStringN(0,"<html lang="+Chr(34)+"fr"+Chr(34)+">")
WriteStringN(0,"<head>")
WriteStringN(0,"<title>"+GetGadgetText(5)+"</title>")
WriteStringN(0,"<meta http-equiv="+Chr(34)+"X-UA-Compatible"+Chr(34)+" content="+Chr(34)+"IE=edge"+Chr(34)+">")
WriteStringN(0,"<meta charset="+Chr(34)+"utf-8"+Chr(34)+" />")
WriteStringN(0,"</head>")
WriteStringN(0,"<body background="+Chr(34)+"fond.gif"+Chr(34)+">")
WriteStringN(0,"<center>")
nombre=0
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
file$= DirectoryEntryName(0)
; debug file$
a$=Right(file$,5)
Position = FindString(a$,".")
If position<>0
type$=Right(a$,5-position)
; debug type$
If (LCase(type$)="jpg" Or LCase(type$)="jpeg" Or LCase(type$)="bmp" Or LCase(type$)="gif" Or LCase(type$)="png") And LCase(file$)<>"fond.gif"
nombre+1
EndIf
EndIf
EndIf
Wend
FinishDirectory(0)
; debug nombre
; ProgressBarGadget(16, 110, 453, 529, 22, 0, nombre)
; ProgressBarGadget(16, 110, 453, 529, 22, 0, nombre, #PB_ProgressBar_Smooth)
nombre2=0
;;;;;;;;;;;;
ExamineDirectory(0, Repertoire$, "*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
file$= DirectoryEntryName(0)
; debug file$
;;;
TextGadget(0,250,20, 391, 40, file$);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
a$=Right(file$,5)
Position = FindString(a$,".")
If position<>0
type$=Right(a$,5-position)
; debug type$
gadgetX=37+GetGadgetState(8)*16
If (LCase(type$)="jpg" Or LCase(type$)="jpeg" Or LCase(type$)="bmp" Or LCase(type$)="gif" Or LCase(type$)="png") And LCase(file$)<>"fond.gif"
If GetGadgetState(6)<>0
If wwww=0
CreateDirectory(Repertoire$+"mini")
wwww=1
EndIf
LoadImage(0,Repertoire$+file$)
CopyImage(0,1)
;;;;;;;;;;;
imagex=ImageWidth(0)
imagey=ImageHeight(0)
If imagex>imagey
imx=gadgetX
imy=imagey*imx/imagex
Else
imy=gadgetX
imx=imagex*imy/imagey
EndIf
;;;;;;;;;;;
ResizeImage(1, imx,imy)
SaveImage(1,Repertoire$+"mini/"+file$,#PB_ImagePlugin_JPEG)
FreeImage(1)
EndIf
WriteStringN(0,"<td align=center valign=center>")
WriteStringN(0,"<a href="+Chr(34)+file$+Chr(34)+" target="+Chr(34)+"_blank"+Chr(34)+">")
WriteStringN(0,"<img src="+Chr(34)+"mini/"+file$+Chr(34)+" border=1></a>")
WriteStringN(0,"</td>")
nombre2+1
SetGadgetState (17,nombre2*100/nombre)
cmb+1
If cmb>=GetGadgetState(10)
cmb=0
WriteStringN(0,"<br />")
EndIf
EndIf
EndIf
EndIf
Wend
FinishDirectory(0)
WriteStringN(0,"<br />")
WriteStringN(0,"</body>")
WriteStringN(0,"</html>")
CloseFile(0)
EndIf
SaveImage(14, Repertoire$+"fond.gif")
If GetGadgetState(15)<>0
RunProgram( Repertoire$+"index.html")
EndIf
;ButtonGadget(16, 10, 450, 729, 28, "Générer la page")
calcul=0
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EndIf
Until Evenement = #PB_Event_CloseWindow
End
;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;
DataSection
fond:
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data .b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
EndDataSection