Page 1 sur 1

Progression de téléchargement

Publié : dim. 28/août/2011 16:27
par MetalOS
Salut les amis, je cherche pour mettre à jour une de mes application le moyen de voir l'avancement des téléchargements d'images avant le lancement de l'interface principal. Je m'explique.

1. Une fenêtre s'ouvre avec une barre de progression augmentant à chaque images téléchargées.

2. Une fois chaque images ont été téléchargées je ferme cet fenêtre et ouvre l'application principal.

Voici la procédure pour la barre de progression :

Code : Tout sélectionner

Procedure Chargement()
  If ReceiveHTTPFile("http://www.meteorologic.net/data/radar/radar_webmaster.png", "radar_webmaster.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte précipitations [OK]")
     SetGadgetState   (#Gadget_Form1_ProgressBar5, 12.5)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte de précipitations. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf
  
  If ReceiveHTTPFile("http://www.meteorologic.net/data/radar/orage_cellule_webmaster.png", "orage_cellule_webmaster.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte cellules orageuses [OK]")
      SetGadgetState   (#Gadget_Form1_ProgressBar5, 25)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte cellules orageuses. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf
  
  If ReceiveHTTPFile("http://www.meteorologic.net/webmaster/carte/france-j0.png", "france-j0.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte prévisions du jour [OK]")
      SetGadgetState   (#Gadget_Form1_ProgressBar5, 37.5)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte prévisions du jour. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf
  
  If ReceiveHTTPFile("http://www.meteorologic.net/webmaster/carte/france-j1.png", "france-j1.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte prévisions de demain [OK]")
      SetGadgetState   (#Gadget_Form1_ProgressBar5, 50)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte prévisions de demain. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf
  
  If ReceiveHTTPFile("http://www.meteorologic.net/webmaster/carte/obs.png", "obs.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte des températures [OK]")
      SetGadgetState   (#Gadget_Form1_ProgressBar5, 62.5)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte des températures. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf
  
  If ReceiveHTTPFile("http://www.meteorologic.net/webmaster/carte/obs_picto.png", "obs_picto.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte du temps présent [OK]")
      SetGadgetState   (#Gadget_Form1_ProgressBar5, 75)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte du temps présent. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf
  
  If ReceiveHTTPFile("http://www.meteorologic.net/webmaster/carte/obs_hum.png", "obs_hum.png")
    SetGadgetText(#Gadget_Form1_TextInfoChargement, "Chargement carte de l'humidité [OK]")
      SetGadgetState   (#Gadget_Form1_ProgressBar5, 87.5)
  Else
    MessageRequester("Attention", "Impossible de télécharger la carte de l'humidité. Vérifier vos paramètres internet.", #PB_MessageRequester_Ok)
  EndIf

    SetGadgetState   (#Gadget_Form1_ProgressBar5, 100)
     CloseWindow(#Window_Form1)
   Delay(1000)
   Window_Form2()
  EndProcedure  


Le problème et que le texte et la progression de la barre ne ce font pas. Je ne voie vraiment pas comment faire autrement sachant que je doit contrôler que chaque images à bien été téléchargé. Au quel cas j'affiche un message d'erreur. Merci d'avance pour votre aide.

Re: Progression de téléchargement

Publié : dim. 28/août/2011 18:04
par Backup
..........................

Re: Progression de téléchargement

Publié : dim. 28/août/2011 18:12
par Atomo
Si tu ajoutes un WindowEvent() après chaque update ça devrait fonctionner.

Re: Progression de téléchargement

Publié : lun. 29/août/2011 8:01
par MLD
Bonjour MetalOS
Content de pouvoir échanger avec toi, car sa fait un bail.
Atomo a raison il faut rendre la main a Windows comme ceci While WindowEvent() : Wend
Autre chose dans ta procédure. Même si toutes les images ne sont pas chargées, la barre de progression sera 100 a la fin de la procédure ceci est'il normal?
Bonne journée.
Michel

Re: Progression de téléchargement

Publié : lun. 29/août/2011 10:55
par Ar-S
L'utilisation d'un thread comme dans le code de Dobro te permettra de ne pas freezer ta fenêtre..

P.S Dobro

Code : Tout sélectionner

Procedure size(url.s) 
	; by Dobro 
	; demande la taille du fichier sur le serveur  
	Header$ = GetHTTPHeader(url.s)  
	Repeat  
    Index+1 
    Line$ = StringField(Header$, Index, #LF$) 
    If FindString(Line$,"Content-Length:",1) 
      longueur_file=Val( StringField(Line$,2,":")) 
      ProcedureReturn longueur_file 
    EndIf  
  Until Line$ = "" 
EndProcedure 
je l'avais oublié celle là Image

Re: Progression de téléchargement

Publié : lun. 29/août/2011 12:53
par Backup
:)

Re: Progression de téléchargement

Publié : mar. 30/août/2011 10:25
par MetalOS
Merci les amis je vais regarder tous ça. :wink: