va ici , il y a un max d'animation dans le style
https://icons8.com/preloaders/en/rectangular
ou ici:
https://icons8.com/preloaders/en/free
et bien voilaaaa !!
ou bien :
ça aussi c'est cool :
peut meme faire en 3d
du texte:
exemple de mise en application (sans toucher au format Gif )
pour le codes suivant,il suffit de cliquer sur le bouton et attendre un peut
dans un premier temps , au début d'un traitement, les images s'affichent .....
puis lorsque c'est fini (le traitement virtuel) ; ça disparait
je me suis aidé d'un code de JHPJHP
http://forums.purebasic.com/english/vie ... 922d1f0b4d
voici comment utiliser les images de Purebasic avec un Gif Animé (et un Thread )
Version avec image en ligne (sur le Net)
Code : Tout sélectionner
UseGIFImageDecoder()
Enumeration
#win
#bouton
#Gadget_Text
#gadget_g
#image
EndEnumeration
Restore Sign:
Declare playanimation(*hgif)
; on precharge le Gif se trouvant sur le Net
AnimatedGIF.s = GetTemporaryDirectory() + "_test.gif"
If Not FileSize(AnimatedGIF) > 0
InitNetwork()
ReceiveHTTPFile("https://icons8.com/preloaders/preloaders/301/Windows8%20loader.gif", AnimatedGIF)
EndIf
If AnimatedGIF
UseGIFImageDecoder()
hGIF = LoadImage(#PB_Any, AnimatedGIF)
If IsImage(hGIF)
nWidth = ImageWidth(hGIF) : nHeight = ImageHeight(hGIF)
ENdif
Endif
Global Thread
If OpenWindow(#win, 0, 0, 200, 300, "Signe d'attente.", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget (#bouton, 10, 10, 200, 20, "Cliquez moi")
TextGadget(#Gadget_Text, 100, 50, 100, 35, "")
ImageGadget(#Gadget_g, 50, 150, nWidth, nHeight, #Null)
Thread=CreateThread(@PlayAnimation(), hGIF)
HideGadget(#Gadget_g, #True) ; cache le gadget
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #bouton
HideGadget(#Gadget_g, #False); montre le gadget
; boucle de traitement
For i=1 to 50000
compteur_sign=compteur_sign+1
if compteur_sign=5:compteur_sign=1:Restore Sign :Endif
Read.s sig.s
SetGadgetText(#Gadget_Text, sig.s)
WindowEvent()
Next i
SetGadgetText(#Gadget_Text, "")
HideGadget(#Gadget_g, #True) ; cache le gadget
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
If IsThread(Thread)
KillThread(Thread)
Endif
FreeImage(hGIF)
EndIf
; ********* Zone Procedures *******************
Procedure PlayAnimation(*hGIF)
FrameCount = ImageFrameCount(*hGIF)
Repeat
For rtnCount = 0 To FrameCount - 1
SetImageFrame(*hGIF, rtnCount)
SetGadgetState(#Gadget_g, ImageID(*hGIF)) : Delay(40)
Next
ForEver
EndProcedure
DataSection
sign:
Data.s "|o---|"
Data.s "|-o--|"
Data.s "|--o-|"
Data.s "|---o|"
Data.s "|--o-|"
EndDataSection
mais si tu telecharges les images Gif, tu les met dans un dossiers "Images_loader"
alors, plus besoin de les telecharger , le code deviens celui-ci
Version avec images sur ton disque dur :
Code : Tout sélectionner
UseGIFImageDecoder()
Enumeration
#win
#bouton
#Gadget_Text
#gadget_g
#image
EndEnumeration
Restore Sign:
Declare playanimation(*hgif)
;{ si on veux charger a partir du Net
; on precharge le Gif se trouvant sur le Net
;AnimatedGIF.s = GetTemporaryDirectory() + "_test.gif"
; If Not FileSize(AnimatedGIF) > 0
; InitNetwork()
; ;; ReceiveHTTPFile("https://icons8.com/preloaders/preloaders/301/Windows8%20loader.gif", AnimatedGIF)
; EndIf
;}
;If AnimatedGIF
UseGIFImageDecoder()
hGIF = LoadImage(#PB_Any,GetCurrentDirectory()+"Images_loader/Windows8 loader.gif")
If IsImage(hGIF)
nWidth = ImageWidth(hGIF) : nHeight = ImageHeight(hGIF)
ENdif
;Endif
Global Thread
If OpenWindow(#win, 0, 0, 200, 300, "Signe d'attente.", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget (#bouton, 10, 10, 150, 20, "Cliquez moi")
TextGadget(#Gadget_Text, 100, 50, 100, 35, "")
ImageGadget(#Gadget_g, 50, 150, nWidth, nHeight, #Null)
Thread=CreateThread(@PlayAnimation(), hGIF)
HideGadget(#Gadget_g, #True) ; cache le gadget
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #bouton
HideGadget(#Gadget_g, #False); montre le gadget
; boucle de traitement
For i=1 to 50000
compteur_sign=compteur_sign+1
if compteur_sign=5:compteur_sign=1:Restore Sign :Endif
Read.s sig.s
SetGadgetText(#Gadget_Text, sig.s)
WindowEvent()
Next i
SetGadgetText(#Gadget_Text, "")
HideGadget(#Gadget_g, #True) ; cache le gadget
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
If IsThread(Thread)
KillThread(Thread)
Endif
FreeImage(hGIF)
EndIf
; ********* Zone Procedures *******************
Procedure PlayAnimation(*hGIF)
FrameCount = ImageFrameCount(*hGIF)
Repeat
For rtnCount = 0 To FrameCount - 1
SetImageFrame(*hGIF, rtnCount)
SetGadgetState(#Gadget_g, ImageID(*hGIF)) : Delay(40)
Next
ForEver
EndProcedure
DataSection
sign:
Data.s "|o---|"
Data.s "|-o--|"
Data.s "|--o-|"
Data.s "|---o|"
Data.s "|--o-|"
EndDataSection