Couleur ProgressBar()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Couleur ProgressBar()

Message par brossden »

Bonjour à tous

Avez vous la solution pour change la couleur de la jauge (ProgressBar) qui est vert par défaut. J'ai essayé avec cette commande :

SetGadgetColor(#level, #PB_Gadget_BackColor, $FF0000)

Cela reste sans effet.

Merci à eux qui se pencheront sur mon problème qu'ils trouvent ou non la solution.

Cordialement

Brossden
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Mindphazer
Messages : 694
Inscription : mer. 24/août/2005 10:42

Re: Couleur ProgressBar()

Message par Mindphazer »

Bonjour,

tu peux jeter un oeil ici https://www.purebasic.fr/english/viewto ... ff#p590134

C'est à base d'API, donc que pour Windows...
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Couleur ProgressBar()

Message par boddhi »

Bonsoir,

De mémoire, il me semble que le changement de couleur, sous Windows, n'est possible que si l'option thème XP est désactivée. Aucun quel cas, on perd alors l'effet 'smooth'.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Couleur ProgressBar()

Message par Ollivier »

brossden a écrit :Merci à eux qui se pencheront sur mon problème qu'ils trouvent ou non la solution.
Salut brossden,

content de te voir. Faire un ProgressBar() maison sans API c'est à ma portée. Qu'est-ce que tu en penses ?

Et si ça t'intéresse, pour éviter de perdre du temps, donne quelques détails souhaités à part la couleur !

Je peux par exemple cibler une variable au pif dans la mémoire. Tu renseignes l'adresse de cette variable, et le progessBar adapte l'affichage en fonction de la valeur de cette variable. Un truc du genre :

Code : Tout sélectionner

Define i, min = 0, max = 100
myProgressBar(numero, x, y, w, h, @i, min, max)
For i = min to max
 Delay(16)
Next
Et là, ton myProgressBar() t'affiche la boucle i en temps réel.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Couleur ProgressBar()

Message par Ollivier »

Ci-dessus, c'est si t'es pas 'API'.

Si, par contre, tu es 'API', il y a blue qui a déterré une discussion entre KCC, netmaestro et Rashad :
https://www.purebasic.fr/english/viewtopic.php?t=47408
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Couleur ProgressBar()

Message par MLD »

Regarde ceci éventuellement.

Code : Tout sélectionner

;MLD 27/04/2017
;PB5.62
#pg1 = 1:#pg2 = 2:#pg3 = 3:#pg4 = 4

Procedure avancepbar(gad,color_face,color_ombre,Pc.d,sens.b);sens normal 0 inverse 1
  StartDrawing(CanvasOutput(gad))
  DrawingMode(#PB_2DDrawing_Gradient)
  FrontColor(color_face)
  BackColor(color_ombre)
  If GadgetHeight(gad)< GadgetWidth(gad)
    LinearGradient(0,GadgetHeight(gad),0,0)
    If sens <> 0
     largPc.d = (GadgetWidth(gad)-GadgetWidth(gad)*Pc)/100
     Box(GadgetWidth(gad),0,largPc.d-2,GadgetWidth(gad) ,color_face) 
    Else  
     largPc.d = (GadgetWidth(gad)*Pc)/100
     Box(0,0,largPc.d,GadgetWidth(gad) ,color_face)
    EndIf
  Else
    LinearGradient(0,GadgetWidth(gad),GadgetWidth(gad),GadgetWidth(gad))
    If sens <> 0
     hautpc.d = (GadgetHeight(gad)-GadgetHeight(gad)*Pc)/100
     Box(0,GadgetHeight(gad),GadgetWidth(gad),hautpc.d,color_face)
    Else
     hautpc.d =(GadgetHeight(gad)*Pc)/100
     Box(0,0,GadgetWidth(gad),hautpc.d,color_face)
    EndIf
  EndIf  
  StopDrawing()
EndProcedure  

Procedure progbar3d(gad,X.d,Y.d,larg.d,haut.d,coulfond.d,cadre.b);pour cadre 1,si non 0
 If cadre = 1
   CanvasGadget(gad,X,Y,larg,haut, #PB_Canvas_Border)
 Else
   CanvasGadget(gad,X,Y,larg,haut)
 EndIf  
 StartDrawing(CanvasOutput(gad))
  DrawingMode(#PB_2DDrawing_Default)
  Box(0,0,larg,Haut,coulfond)
 StopDrawing()
EndProcedure 

Procedure demo()
  Static Pc1,Pc2,Pc3,Pc4
  pc1 = pc1 + 1  
  pc2 = pc2 + 2 
  pc3 = pc3 + 1 
  pc4 = pc4 + 4 
  avancepbar(1,$7E04E5,$44007E,Pc1,0)
  avancepbar(2,$CB9B79,$6F5C4F,Pc2,1)
  avancepbar(3,$A1E623,$5C6A42,Pc3,1)
  avancepbar(4,$1BF3FF,$167175,Pc4,0)
  If Pc1 = 100:progbar3d(1,10,20,200,25,$BEBEBE,1):pc1 = 0:EndIf
  If Pc2 = 100:progbar3d(2,10,80,280,25,$BEBEBE,0) :Pc2 = 0:EndIf
  If Pc3 = 100:progbar3d(3,50,120,25,100,$BEBEBE,0):Pc3 = 0:EndIf
  If Pc4 = 100:progbar3d(4,225,120,25,100,$BEBEBE,0):Pc4 = 0:EndIf
EndProcedure  
OpenWindow(0, 0, 0, 300, 250, "Progressbar1", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
AddWindowTimer(0, 1, 100)
progbar3d(1,10,20,200,25,$BEBEBE,1)
;avancepbar(1,$7E04E5,$44007E,Pc1,0)
progbar3d(2,10,80,280,25,$BEBEBE,0) 
;avancepbar(2,$CB9B79,$6F5C4F,Pc2,1)
progbar3d(3,50,120,25,100,$BEBEBE,0)
;avancepbar(3,$A1E623,$5C6A42,Pc3,1)
progbar3d(4,225,120,25,100,$BEBEBE,0)
;avancepbar(4,$1BF3FF,$167175,Pc4,0)
BindEvent(#PB_Event_Timer,@demo())
Repeat
  Select WaitWindowEvent()
   Case #PB_Event_CloseWindow
    Break
 EndSelect
ForEver     
End    
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Couleur ProgressBar()

Message par Micoute »

Bonjour MLD,

il me semblait bien avoir déjà vu ce programme, merci quand même du partage.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Re: Couleur ProgressBar()

Message par brossden »

Merci à tous de vous être penché sur mon problème
la solution d'Ollivier que j'ai adoptée et qui fonctionne parfaitement est de rajouter la commande :

SetWindowTheme_(GadgetID(#level), #Empty$, #Empty$)

Juste aprèes avoir créer la progressbar(#level,......)

Merci encore et désolé de n'avoir pas répondu plus tôt mais j'étais en vacances !!
Brossden
Denis

Bonne Jounée à tous
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Couleur ProgressBar()

Message par Ollivier »

8O :lol:
Brossden a écrit :[...] la solution d'Ollivier que j'ai adoptée et qui fonctionne parfaitement [...]
Salut brossden, j'espère que tes vacances ont été bonnes.
Sans vouloir te froisser, c'est Mindphazer qui t'a éclairé la lampe, avec un code de mk-soft.

Donc je donne la valise pleine de billets de dollars pour la récompense à Mindphazer ! (mais j'en ai gratté quelques uns de biftons discrètement en passant :mrgreen: )
Avatar de l’utilisateur
Mindphazer
Messages : 694
Inscription : mer. 24/août/2005 10:42

Re: Couleur ProgressBar()

Message par Mindphazer »

Ollivier a écrit : dim. 02/juil./2023 8:51 Donc je donne la valise pleine de billets de dollars pour la récompense à Mindphazer ! (mais j'en ai gratté quelques uns de biftons discrètement en passant :mrgreen: )
Mince, combien tu m'as laissé ??
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Re: Couleur ProgressBar()

Message par brossden »

Il n'y avais qu'un seul dollars ! lol
Denis

Bonne Jounée à tous
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Couleur ProgressBar()

Message par Ollivier »

Je l'ai carotté !
Répondre