Page 1 sur 1

Comment donner une action a une Barre de Progression

Publié : lun. 16/mars/2009 12:55
par John36mx
Bonjour,

Je cherche le codage pour donner une action a une barre de progression.

J'aimerais que quand je clique sur mon bouton ma barre de progression défile.

Merci de votre aide.

Publié : lun. 16/mars/2009 13:18
par Kwai chang caine
Bonjour John36mx

Voici un code de VENOM qui peut deja te metre sur une des nombreuses voies de gestion de progressbar :wink:

Code : Tout sélectionner

;- Window Constants 
Enumeration 
  #Window_0 
EndEnumeration 

;- Gadget Constants 
Enumeration 
  #ProgressBar_0 
  #Button_0 
EndEnumeration 

  If OpenWindow(#Window_0, 216, 0, 319, 85, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered ) 
    If CreateGadgetList(WindowID(#Window_0)) 
      ProgressBarGadget(#ProgressBar_0, 10, 10, 300, 15, 0, 100) 
      ButtonGadget(#Button_0, 115, 40, 90, 25, "lancer") 
      
    EndIf 
  EndIf 
  
  Repeat 
   EventID = WaitWindowEvent() 
    If EventID = #PB_Event_Gadget 
      Select EventGadget() 
      
       Case #Button_0 
        Beep_(1000, 100) 
         SetGadgetState(#ProgressBar_0, 10) 
          Delay(500) 
        Beep_(1000, 100) 
         SetGadgetState(#ProgressBar_0, 35) 
          Delay(100) 
        Beep_(1000, 100) 
         SetGadgetState(#ProgressBar_0, 48) 
          Delay(1000) 
        Beep_(1000, 100) 
         SetGadgetState(#ProgressBar_0, 64) 
          Delay(100) 
        Beep_(1000, 100) 
         SetGadgetState(#ProgressBar_0, 88) 
          Delay(800) 
        Beep_(4000, 100) 
         SetGadgetState(#ProgressBar_0, 100) 
          Delay(800) 
         End 
      
      EndSelect 
    EndIf 
  Until EventID = #PB_Event_CloseWindow

Publié : mar. 17/mars/2009 12:57
par brossden
Un petit Sablier

Code : Tout sélectionner

Enumeration
  #Window_0 : #ProgressBar_0 : #Button_0 : #Button_1 : #Text_0 : #String_0
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 353, 98, 210, 300, "Sablier",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      ProgressBarGadget(#ProgressBar_0, 85, 10, 20, 230, 0, 100, #PB_ProgressBar_Vertical |#PB_ProgressBar_Smooth)
      ButtonGadget(#Button_0, 10, 250, 70, 30, "Go")
      ButtonGadget(#Button_1, 110, 250, 70, 30, "Stop")
      StringGadget(#String_0, 110, 120, 40, 20, "4", #PB_String_Numeric)
      TextGadget(#Text_0,154,124,60,20,"Secondes")
    EndIf
  EndIf
EndProcedure

Procedure Regen(x)
  time = ElapsedMilliseconds()
  Duree  = Val(GetGadgetText(#String_0))*1000
  Repeat
    Resultat =  (ElapsedMilliseconds()-time)*100/Duree 
    SetGadgetState(#ProgressBar_0,Resultat)
    Delay(10)
  Until Resultat=100
  Beep(500,500)
  End
EndProcedure

Open_Window_0()

Repeat ; Start of the event loop
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  GadgetID = EventGadget() ; Is it a gadget event?
  If Event = #PB_Event_Gadget
    If GadgetID = #Button_0
      Thr = CreateThread(@Regen(),0)
    ElseIf GadgetID = #Button_1
      KillThread(Thr)
      SetGadgetState(#ProgressBar_0,0)
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End

Publié : mar. 17/mars/2009 13:39
par Kwai chang caine
Bonjour mon canard, content de te relire :D
Dis donc ton sablier y ressemble a un thermometre :lol:

Peut etre cette ligne a changer :roll:

Code : Tout sélectionner

Beep(500,500) 
par

Code : Tout sélectionner

Beep_(500,500) 
Autrement cool, je le garde pour cet été....j'serais sur qu'il fera chaud :wink:

Publié : mar. 17/mars/2009 14:09
par Backup
Kwai chang caine a écrit : Peut etre cette ligne a changer :roll:

Code : Tout sélectionner

Beep(500,500) 
par

Code : Tout sélectionner

Beep_(500,500) 
brossdent a surement la droopy lib d'installé !

car chez moi beep() fonctionne tres bien grace a cette lib ;)

Publié : mar. 17/mars/2009 14:18
par Kwai chang caine
Merci pour l'info DOBRO

Ok, parce que comme chez moi, j'ai aucune lib.
J'croyais que t'etais pas trop lib non plus ? :roll:

Tout nu, le PB, comme a sa naissance et le petit jesus :D
Et en plus IDE natif comme au debut.....
Debut que j'ai pas bien quitté d'ailleur :lol:

Publié : mar. 17/mars/2009 14:25
par Backup
Kwai chang caine a écrit :Merci pour l'info DOBRO

Ok, parce que comme chez moi, j'ai aucune lib.
J'croyais que t'etais pas trop lib non plus ? :roll:
si ! si ! j'aime bien les lib, au contraire !! ça simplifie énormément le code :)

par contre je déplore le fait de ne pas disposer des sources
parce que j'ai toujours peur que le créateur d'une tres belle lib
disparaisse , et donc le portage de la lib pour des versions future de purebasic, s'arrete !!

mais bon je comprends qu'on veuille garder son travail "privé"

perso j'utilise les libs, avec parcimonie, pour simplifier mon code, et pour ne pas réinventer l'eau chaude ... :)

je suis a fond pour les libs, et pour moi celles dont on dispose du code
sont des libs en or !! :D

Publié : mar. 17/mars/2009 18:20
par John36mx
Merci beaucoup de votre aide j'ai enfin reussi grace a vous.

Publié : mar. 17/mars/2009 19:48
par venom
Voici un code de VENOM qui peut deja te metre sur une des nombreuses voies de gestion de progressbar
sa viens de moi sa 8O je ne m'en souviens même plus :lol:
fin si sa peut aidé :wink:






@++

Publié : mer. 18/mars/2009 9:46
par Kwai chang caine
sa viens de moi sa je ne m'en souviens même plus
Bah c'est c'est ce que j'avais noté à l'epoque.
J'avais pas noté le lien, car a cette epoque, je ne le faisait pas :oops:
Y'a longtemps que maintenant je le fait comme ça j'ai les preuves :lol:

Maintenant, quand je copie un code et que la personne ne dit pas qu'elle l'a pris a quelqu'un d'autre, je note ce code comme a elle :roll:

Donc en principe et sauf avis contraire....c'est à toi :D

Publié : mer. 18/mars/2009 11:48
par venom
Ouai c'est possible.
En tout cas si sa viens de moi pas de problème tu peut poster :D la preuve tu aurais pu dire que c'est toi qui la fait :)






@++