Barre de progression maison

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Barre de progression maison

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Barre de progression maison

Message par MLD »

Salut Dayvid

Sympa ta barre, mais change les couleurs, sa ce mélange un peu. :lol:
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Barre de progression maison

Message par venom »

oui sympa ces petites barres






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Barre de progression maison

Message 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:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Barre de progression maison

Message 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()
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Barre de progression maison

Message par blendman »

sympa comme tout ces petites barres ;-)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Barre de progression maison

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Barre de progression maison

Message par Geo Trouvpatou »

Ouais! pas mal du tout surtout depuis la modif de LSI qui fait que les progressBar ne clignotent plus.
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: Barre de progression maison

Message par Warkering »

Sympa, surtout qu'elle est personnalisable facilement. :)
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Barre de progression maison

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Barre de progression maison

Message 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:
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Barre de progression maison

Message 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:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Barre de progression maison

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Barre de progression maison

Message par dayvid »

personne peut m'aider svp
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Barre de progression maison

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre