Page 1 sur 2

Barre de progression maison

Publié : mer. 20/avr./2011 13:03
par dayvid
Salut a tous

J'ai crée ceci et j'aimerais votre avis :)

Code : Tout sélectionner

; Par M Dieppedalle David en avril  2011
Global TextHeight

Procedure ProgressBar(NumeroID, X, Y, Largeur, Hauteur, CouleurBors, CouleurDegraderGaucheProgressBar, CouleurDegraderDroiteProgressBar, CouleurRemplissageDeFondProgressBar, CouleurDegrader1Texte, CouleurDegrader2Texte, ModeDegrader, Progression.f)
  LoadFont(1, "Cambria", Hauteur / 2, #PB_Font_HighQuality | #PB_Font_Bold)
  CreateImage(NumeroID, Largeur, Hauteur)
  StartDrawing(ImageOutput(NumeroID))
  Uniter.f = (Largeur - 2) / 100
  Box(1, 1, Largeur - 2, Hauteur - 2, CouleurRemplissageDeFondProgressBar)
  
  DrawingMode(#PB_2DDrawing_Gradient)
  
  FrontColor(CouleurDegraderGaucheProgressBar)
  BackColor(CouleurDegraderDroiteProgressBar)

  If ModeDegrader <= 0
    LinearGradient(Largeur, Hauteur, 1, Hauteur)
  ElseIf ModeDegrader >= 1
    LinearGradient(1, Hauteur, 1, 1)
  EndIf
  
  Box(Largeur, 1, Box(1, 1, Progression * Uniter, Hauteur, CouleurRemplissageDeFondProgressBar) , Hauteur - 2, CouleurRemplissageDeFondProgressBar)
  
  DrawingFont(FontID(1))
  TextHeight = TextHeight("0")
  TextWidth = TextWidth(Str(Progression) + " %")
  FrontColor(CouleurDegrader1Texte)
  BackColor(CouleurDegrader2Texte)
  LinearGradient(Largeur - (Largeur / 2 - TextWidth / 2), Hauteur, Largeur / 2 - TextWidth / 2, Hauteur)
  DrawRotatedText(Largeur / 2 - TextWidth / 2, Hauteur / 2 - (TextHeight / 2), Str(Progression) + " %", 0)
  
  DrawingMode(#PB_2DDrawing_Outlined)
  Box(0, 0, Largeur, Hauteur, CouleurBors)
  StopDrawing()
  ImageGadget(NumeroID, X, Y, Largeur, Hauteur, ImageID(NumeroID))
  Delay(1)
EndProcedure

Enumeration
  #Fenetre
EndEnumeration

Procedure Procedure_Fenetre()
  If OpenWindow(#Fenetre, 439, 170, 600, 300, "Fenêtre",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    ProgressBar(1, 50, 50, 200, 20, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 0, 75)
    ProgressBar(2, 50, 75, 200, 20, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 1, 75)
    TrackBarGadget(5, 50, 105, 200, 25, 0, 100)
    SetGadgetState(5, 75)
    
    Repeat ; Start of the event loop
      
      Event = WaitWindowEvent(1) ; This line waits until an event is received from Windows
      WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
      GadgetID = EventGadget() ; Is it a gadget event?
      EventType = EventType() ; The event type
      EventMenu = EventMenu() ; The event Menu
      
      If Event = #PB_Event_Gadget
        
        If GadgetID = 5
          ProgressBar(1, 50, 50, 200, 20, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 0, GetGadgetState(5))
          ProgressBar(2, 50, 75, 200, 20, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 1, GetGadgetState(5))
        ElseIf GadgetID = 0
          
        ElseIf GadgetID = 0
          
        EndIf
        
      ElseIf Event = #PB_Event_Menu
        
        If EventMenu = 0
          
        ElseIf EventMenu = 0
          
        ElseIf EventMenu = 0
          
        EndIf
        
      EndIf
      
      
    Until Event = #PB_Event_CloseWindow ; End of the event loop
    
  EndIf
EndProcedure

Procedure_Fenetre()


; IDE Options = PureBasic 4.60 Beta 2 (Windows - x86)
; CursorPosition = 12
; FirstLine = 26
; Folding = -
; EnableXP
; EnableUser
; EnableOnError
; EnableCompileCount = 228
; EnableBuildCount = 0
; EnableExeConstant

Re: Barre de progression maison

Publié : mer. 20/avr./2011 16:39
par MLD
Salut Dayvid

Sympa ta barre, mais change les couleurs, sa ce mélange un peu. :lol:

Re: Barre de progression maison

Publié : mer. 20/avr./2011 18:03
par venom
oui sympa ces petites barres






@++

Re: Barre de progression maison

Publié : mer. 20/avr./2011 19:32
par Jacobus
Si tu as fais ça tout seul, bravo! Belles barres 8)
C'est bien pensé et ça change du quotidien. Ca fait plaisir de voir que tu peux sortir un peu de ta fixette; console ultra-bright pour hippies.
Faudrait quand même que tu apprennes à travailler avec des mots plus... comment dire... courts?
ça >> CouleurDegraderGaucheProgressBar, CouleurDegraderDroiteProgressBar, CouleurRemplissageDeFondProgressBar, CouleurDegrader1Texte c'est atroce :mrgreen:

Re: Barre de progression maison

Publié : mer. 20/avr./2011 23:26
par Le Soldat Inconnu
Pas mal, je corrige tout de même.
Tu remplaces ton gadget à chaque changement de pourcentage au lieu de l'actualiser ce qui n'est pas très "propre"

Code : Tout sélectionner

; Par M Dieppedalle David en avril  2011
Global TextHeight

Procedure SetProgressBarState(NumeroID, CouleurBors, CouleurDegraderGaucheProgressBar, CouleurDegraderDroiteProgressBar, CouleurRemplissageDeFondProgressBar, CouleurDegrader1Texte, CouleurDegrader2Texte, ModeDegrader, Progression.f)
	Largeur = ImageWidth(NumeroID)
	Hauteur = ImageHeight(NumeroID)
	StartDrawing(ImageOutput(NumeroID))
		Uniter.f = (Largeur - 2) / 100
		Box(1, 1, Largeur - 2, Hauteur - 2, CouleurRemplissageDeFondProgressBar)
		
		DrawingMode(#PB_2DDrawing_Gradient)
		
		FrontColor(CouleurDegraderGaucheProgressBar)
		BackColor(CouleurDegraderDroiteProgressBar)
		
		If ModeDegrader <= 0
			LinearGradient(Largeur, Hauteur, 1, Hauteur)
		ElseIf ModeDegrader >= 1
			LinearGradient(1, Hauteur, 1, 1)
		EndIf
		
		Box(Largeur, 1, Box(1, 1, Progression * Uniter, Hauteur, CouleurRemplissageDeFondProgressBar) , Hauteur - 2, CouleurRemplissageDeFondProgressBar)
		
		DrawingFont(FontID(1))
		TextHeight = TextHeight("0")
		TextWidth = TextWidth(Str(Progression) + " %")
		FrontColor(CouleurDegrader1Texte)
		BackColor(CouleurDegrader2Texte)
		LinearGradient(Largeur - (Largeur / 2 - TextWidth / 2), Hauteur, Largeur / 2 - TextWidth / 2, Hauteur)
		DrawRotatedText(Largeur / 2 - TextWidth / 2, Hauteur / 2 - (TextHeight / 2), Str(Progression) + " %", 0)
		
		DrawingMode(#PB_2DDrawing_Outlined)
		Box(0, 0, Largeur, Hauteur, CouleurBors)
	StopDrawing()
	SetGadgetState(NumeroID, ImageID(NumeroID))
EndProcedure

Procedure ProgressBar(NumeroID, X, Y, Largeur, Hauteur, CouleurBors, CouleurDegraderGaucheProgressBar, CouleurDegraderDroiteProgressBar, CouleurRemplissageDeFondProgressBar, CouleurDegrader1Texte, CouleurDegrader2Texte, ModeDegrader, Progression.f)
	LoadFont(1, "Cambria", Hauteur / 2, #PB_Font_HighQuality | #PB_Font_Bold)
	CreateImage(NumeroID, Largeur, Hauteur)
	ImageGadget(NumeroID, X, Y, Largeur, Hauteur, ImageID(NumeroID))
	SetProgressBarState(NumeroID, CouleurBors, CouleurDegraderGaucheProgressBar, CouleurDegraderDroiteProgressBar, CouleurRemplissageDeFondProgressBar, CouleurDegrader1Texte, CouleurDegrader2Texte, ModeDegrader, Progression.f)
EndProcedure



Enumeration
	#Fenetre
EndEnumeration

Procedure Procedure_Fenetre()
	If OpenWindow(#Fenetre, 439, 170, 600, 300, "Fenêtre",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
		ProgressBar(1, 50, 50, 200, 20, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 0, 75)
		ProgressBar(2, 50, 75, 200, 20, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 1, 75)
		TrackBarGadget(5, 50, 105, 200, 25, 0, 100)
		SetGadgetState(5, 75)
		
		Repeat ; Start of the event loop
			
			Event = WaitWindowEvent(1) ; This line waits until an event is received from Windows
			WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
			GadgetID = EventGadget() ; Is it a gadget event?
			EventType = EventType() ; The event type
			EventMenu = EventMenu() ; The event Menu
			
			If Event = #PB_Event_Gadget
				
				If GadgetID = 5
					SetProgressBarState(1, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 0, GetGadgetState(5))
					SetProgressBarState(2, RGB(0, 0, 255), RGB(255, 0, 0), RGB(255, 190, 0), RGB(0, 0, 0), RGB(255, 0, 0), RGB(0, 0, 255), 1, GetGadgetState(5))
				ElseIf GadgetID = 0
					
				ElseIf GadgetID = 0
					
				EndIf
				
			ElseIf Event = #PB_Event_Menu
				
				If EventMenu = 0
					
				ElseIf EventMenu = 0
					
				ElseIf EventMenu = 0
					
				EndIf
				
			EndIf
			
			
		Until Event = #PB_Event_CloseWindow ; End of the event loop
		
	EndIf
EndProcedure

Procedure_Fenetre()

Re: Barre de progression maison

Publié : jeu. 21/avr./2011 7:09
par blendman
sympa comme tout ces petites barres ;-)

Re: Barre de progression maison

Publié : jeu. 21/avr./2011 13:18
par Kwai chang caine
Jacobus a écrit :Si tu as fais ça tout seul, bravo! Belles barres 8)
Faudrait quand même que tu apprennes à travailler avec des mots plus... comment dire... courts?
ça >> CouleurDegraderGaucheProgressBar, CouleurDegraderDroiteProgressBar, CouleurRemplissageDeFondProgressBar, CouleurDegrader1Texte c'est atroce :mrgreen:
Tout à fait d'accord, bravo, superbes barres 8O

Re: Barre de progression maison

Publié : jeu. 21/avr./2011 14:28
par Geo Trouvpatou
Ouais! pas mal du tout surtout depuis la modif de LSI qui fait que les progressBar ne clignotent plus.

Re: Barre de progression maison

Publié : jeu. 21/avr./2011 23:52
par Warkering
Sympa, surtout qu'elle est personnalisable facilement. :)

Re: Barre de progression maison

Publié : ven. 22/avr./2011 13:58
par dayvid
Ouoi cool les gars, sa y est je suis célèbre:

Ma cote de popularité avent sa = 0
après = 50
après ce message = - 150 :lol:

Oui c'est très sympa je trouve, merci beaucoup a toi LSI
oui sa clignotais et sa le fessais pas du tous :wink:

Alors puisque sa plaie bien je vais encore l'améliorer et essayer de le rendre encore plus simple :P

Re: Barre de progression maison

Publié : ven. 22/avr./2011 16:30
par MLD
Yes Dayvid

Dayvid a écrit
Oui c'est très sympa je trouve, merci beaucoup a toi LSI
oui sa clignotais et sa le fessais pas du tous

Alors puisque sa plaie bien je vais encore l'améliorer et essayer de le rendre encore plus simple

Mais si tu ni arrives pas je te donnerai une fessé qui te feras des plaies :mrgreen: :mrgreen:

Re: Barre de progression maison

Publié : sam. 23/avr./2011 13:08
par dayvid
Oui bon bin hein j'suis pas parfait encore :lol: , mais sa va venir :roll:
dans mes rêves les plus fou :mrgreen:

Re: Barre de progression maison

Publié : lun. 13/févr./2012 14:58
par dayvid
Tien, c'est beaucoup plus simple de retrouver un code ici que sur mon ordinateur car c'est le gros bazzard :lol:
et ça tombe bien car ce petit bijoue va me servire pour crée une fenêtre de state de personnage
Félicitation mon cher Dayvid :mrgreen:

Par contre je me disais que ce serais bien de pouvoir mètre plusieur couleur en dégrader (+ que 2)
pour faire une jolie bar de vie qui va du: rouge > orange > jaune > vert

Re: Barre de progression maison

Publié : ven. 23/mars/2012 11:35
par dayvid
personne peut m'aider svp

Re: Barre de progression maison

Publié : ven. 23/mars/2012 12:39
par Ar-S
Une fonction sympa serait de pouvoir utiliser une image fixe de 200x20 et de la faire apparaitre progressivement à la place du dégradé.
En gros créer une image de 200x20 noire et une avec le "skin". Placer la noire sur la skin et la rapetisser vers la droite.