there is a problem we need to talk about. A bug I would say.
Run this code and choose a 700MB file (a movie for example).
At home, the progress bar hangs around 5%
WHY ?
It does not make sense ...
Code: Select all
Declare Lis()
OpenWindow(0, 0, 0, 749, 596+27+20, "MutanteKey 2", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
Global Repertoire$
ExplorerTreeGadget(1, 11, 73, 230, 280, Repertoire$, #PB_Explorer_NoFiles)
ExplorerListGadget(2, 247,73,490,280, "*.*", #PB_Explorer_NoFolders|#PB_Explorer_NoParentFolder)
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
SetGadgetText(100, Repertoire$) ; Remplir la liste avec le répertoire
EndProcedure
BindGadgetEvent(1, @Afficher_fichiers(), #PB_EventType_Change) ; #PB_EventType_LeftClick)
StringGadget(100,50,360,642,20,"") ; contient le chemin+fichier complet
ButtonGadget(16, 200, 450,342,20,"Lire le fichier + barre de progression")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 2 ; Démarrer un d&d
; If EventType() = #PB_EventType_DragStart
; DragFiles(GetGadgetItemText(2, GetGadgetState(2)), #PB_Drag_Copy)
; EndIf
Select type
Case #PB_EventType_LeftClick
If GetGadgetItemText(2, GetGadgetState(2))<>"Nom"
Repertoire$=GetGadgetText(2)+GetGadgetItemText(2, GetGadgetState(2))
EndIf
SetGadgetText(100, Repertoire$)
EndSelect
Case 16
Lis()
Select type
Case #PB_EventType_LeftClick
EndSelect
EndSelect
EndSelect
Until Evenement = #PB_Event_CloseWindow
End
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Procedure Lis()
If ReadFile(0, GetGadgetText(100))
longueur_q=Lof(0) : Debug "longueur_q " + longueur_q
ProgressBarGadget(200, 13, 400, 722, 15, 0, longueur_q)
z=0
For a = 0 To longueur_q
z+1
If z>100000
SetGadgetState (200, a)
z=0
EndIf
Next
q.q=ReadQuad(0)
CloseFile(0)
Beep_(500,500)
SetGadgetState (200, 0)
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure