Page 1 sur 1

Couleur ProgressBar()

Publié : jeu. 22/juin/2023 14:51
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

Re: Couleur ProgressBar()

Publié : jeu. 22/juin/2023 17:54
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...

Re: Couleur ProgressBar()

Publié : jeu. 22/juin/2023 20:02
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'.

Re: Couleur ProgressBar()

Publié : jeu. 22/juin/2023 21:17
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.

Re: Couleur ProgressBar()

Publié : dim. 25/juin/2023 12:29
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

Re: Couleur ProgressBar()

Publié : ven. 30/juin/2023 10:12
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    

Re: Couleur ProgressBar()

Publié : sam. 01/juil./2023 13:33
par Micoute
Bonjour MLD,

il me semblait bien avoir déjà vu ce programme, merci quand même du partage.

Re: Couleur ProgressBar()

Publié : dim. 02/juil./2023 7:28
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

Re: Couleur ProgressBar()

Publié : dim. 02/juil./2023 8:51
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: )

Re: Couleur ProgressBar()

Publié : dim. 02/juil./2023 10:45
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é ??

Re: Couleur ProgressBar()

Publié : ven. 14/juil./2023 11:01
par brossden
Il n'y avais qu'un seul dollars ! lol

Re: Couleur ProgressBar()

Publié : ven. 14/juil./2023 11:38
par Ollivier
Je l'ai carotté !