Page 1 sur 1
					
				WebGadget Et Delay() [Freez]
				Publié : lun. 28/mars/2016 17:55
				par digital
				Bonjour voila normalement via ce code la logique serai d'aller sur un site web via le webgadget, de le charger et laisser visionner son contenu et au bout de quelque seconde changer de page.
Hors le delay bloque le controle completement.
Code : Tout sélectionner
   MainFormShow() ; Procedure ou on crée le webgadjet 
urltoview$ = "http://www.google.fr" 
;C'est la que sa commence à merder 
    SetGadgetText(#Webgadget, urltoview$) 
   While GetGadgetAttribute(#Webgadget, #PB_Web_Busy)
    WaitWindowEvent(1)
    SetGadgetText(#Webgadget, "Page loading... Please wait.")
  Wend
Delay(4000) ;On souhaite rester sur la page sans bloquer l'appli 
Debug GetGadgetText(#Webgadget) ; Dans la logique je devrai avoir http://www.google.fr mais sa sera pas le cas
urltoview$ = "http://www.falsam.com" ; 
SetGadgetText(#Webgadget, urltoview$) ; On change sur un autre site.
Debug GetGadgetText(#Webgadget) 
;Au final l'appli se lance, patiente bien mais saute l'étape de rester sur
;google pendant quelque seconde et va directement sur falsam.com mvoila.
  
 
			
					
				Re: WebGadget Et Delay() [Freez]
				Publié : lun. 28/mars/2016 18:13
				par digital
				Bon bah via un createthread() en mettant le delay et l'action de changer d'adresse au gadget ça fonctionne.
C'est surement pas le plus opti/propre/meilleur moyen de le faire mais bon.
			 
			
					
				Re: WebGadget Et Delay() [Freez]
				Publié : lun. 28/mars/2016 18:24
				par venom
				Personnellement je t'aurais conseillé un thread.
@++
			 
			
					
				Re: WebGadget Et Delay() [Freez]
				Publié : lun. 28/mars/2016 19:04
				par Ar-S
				Regarde du coté des timers  
 
 
Tu peux aussi matter l'exemple de la doc du coté de NavigationCallback()
 
			
					
				Re: WebGadget Et Delay() [Freez]
				Publié : lun. 28/mars/2016 19:23
				par falsam
				Ar-s ne lui donne pas de conseil. Son code est pourri  
 
 
Faire ça pendant que la page charge, bien sur que la page bloque
Code : Tout sélectionner
While GetGadgetAttribute(#Webgadget, #PB_Web_Busy)
    WaitWindowEvent(1)
    SetGadgetText(#Webgadget, "Page loading... Please wait.")
  Wend
Code : Tout sélectionner
Delay(4000) ;On souhaite rester sur la page sans bloquer l'appli 
Pas de commentaire  
 
 Code : Tout sélectionner
urltoview$ = "http://www.falsam.com" ; 
SetGadgetText(#Webgadget, urltoview$) ; On change sur un autre site.
digital a écrit :Au final l'appli se lance, patiente bien mais saute l'étape de rester sur
google pendant quelque seconde et va directement sur falsam.com mvoila.
Et oui forcément. Tu n'es qu'un noob !! Hahaha
Ar-s a raison. Passe par le callback de navigation et utilise un timer si tu veux changer d'url au bout d'un certain temps.
Petit exemple juste pour répondre le callback de navigation et la maniere de traiter les évenement du webgadget
Code : Tout sélectionner
Enumeration
  #MainForm
  #Webgadget
EndEnumeration
Global urltoview$
Procedure NavigationCallback(Gadget, Url$) 
  Debug Url$  
    
  ProcedureReturn #True 
EndProcedure 
Procedure MainFormShow()
  If OpenWindow(#MainForm, 0, 0, 800, 600, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    WebGadget(#Webgadget, 10, 10, 780, 580, "")  
    SetGadgetAttribute(#Webgadget, #PB_Web_NavigationCallback, @NavigationCallback())
  EndIf
EndProcedure
MainFormShow() ; Procedure ou on crée le webgadjet 
urltoview$ = "http://google.fr" 
SetGadgetText(#Webgadget, urltoview$) 
Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Webgadget
          Select EventType()
            Case #PB_EventType_StatusChange
              Debug "#PB_EventType_StatusChange"
            Case #PB_EventType_DownloadStart
              Debug "#PB_EventType_DownloadStart" 
              
            Case #PB_EventType_DownloadProgress
              Debug "#PB_EventType_DownloadProgress"
              
            Case #PB_EventType_DownloadEnd     
              Debug "#PB_EventType_DownloadEnd"
              
          EndSelect
      EndSelect
  EndSelect
  
Until Event = #PB_Event_CloseWindow
 
			
					
				Re: WebGadget Et Delay() [Freez]
				Publié : lun. 28/mars/2016 19:34
				par digital
				@venom
Oué c'est ce que j'ai fait.
@Ar-S
Pas con pour le timer c'est surement plus pratique à manipuler.
@Falsam
Oué en gros l'alternative c'est le timer quoi.
Ca l'avantage d'être plus simple à manipuler oui.
Mais pour les besoins que j'ai y'a pas grand chose à traiter.
Merci pour les réponses.
Intéressant ces alternatif.
			 
			
					
				Re: WebGadget Et Delay() [Freez]
				Publié : mar. 29/mars/2016 10:09
				par falsam
				A bientôt pour une prochaine discussion sur FreeChat et sur le forum bien sur  
