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
