cambiar el color a un boton?

cambiar el color a un boton?

Postby goosfancito » Wed Jun 11, 2014 12:36 pm

hola.
Quiero hacer una paleta de colores para que el usuario pueda seleccionar uno,
y pensé hacerlo con botones, y que cada botón sea del color que yo quiero.

Como hago para cambiarle el color a los botones?

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby Adolfo » Wed Jun 11, 2014 12:50 pm

Goosfancito...

Espero este te sirva...

Code: Select all  Expand view  RUN
 
Local Color1:=65000 //amarillo


  Redefine BtnBmp oBtn01 ID 121 Of oDlgConf  Action (Color1:=ValidaColor(oBtn01,Color1)) UPDATE
                     oBtn01:bClrGrad = { | | {{ 1, Color1, Color1 }, { 1, Color1, Color1 }} }



//-----------------------------------------------------------------------------
Function ValidaColor(Boton,Colore)

    Colore:=ChooseColor( Colore )

    Boton:bClrGrad = { | | {{ 1, Colore, Colore }, { 1, Colore, Colore }} }
    Boton:Refresh()

Return Colore
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: cambiar el color a un boton?

Postby goosfancito » Wed Jun 11, 2014 12:56 pm

gracias!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby goosfancito » Wed Jun 11, 2014 2:28 pm

Estoy probando lo que me dijiste:
Code: Select all  Expand view  RUN
REDEFINE btnbmp oBtnsColores[01] ID 201 OF oDlg action(vGets[3]:="")
      oBtnsColores[1]:bClrGrad:= {|| {{1, choosecolor(65000), choosecolor(65000)}, {1, choosecolor(65000), choosecolor(65000)}}}
      oBtnsColores[1]:refresh()
 


pero no me cambia el color...
gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby Adolfo » Wed Jun 11, 2014 3:13 pm

Goosfancito.

Utiliza una funcion externa para la asignacion del color, no dentro del bloque de codigo que define el GRAD.

Tal como lo habia hecho yo, llamando a validacolor() en el valid del Boton.
Si quieres guardar el color elegio, la variable COLOR1 la puedes traspasar a un DBf o un campo de una tabla Mysql, y leerla desde ahi antes de crear los botones, para que el boton tome el ultimo color elegido.

Lo que yo hago es engañar al boton diciendole que va a dibujar un boton con color en degrade, pero los parametros que le paso son el mismo color para todas las opciones, asi lo dibuja plano y puedo cambiarlo segun lo indico.

Prueba de nuevo.
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: cambiar el color a un boton?

Postby goosfancito » Wed Jun 11, 2014 5:04 pm

Me exprese mal en lo que necesito, por lo que vi "choosecolor" es una funcion para
seleccionar un color.

Yo quiero tener unos colores preestablecidos, ejemplo:
CLR_COLOR1
CLR_COLOR2
CLR_COLOR3
...

y poner en el dialogo tres button, y que cada button este pintado con cada color

boton1 con el color CLR_COLOR1
boton2 con el color CLR_COLOR2
boton3 con el color CLR_COLOR3

que necesito? que el boton se pinte de color, probe tal cual me decis, me
muestra el choosecolor selecciono un color pero asi y todo el boton no se pinta
de ese color...

me explique mejr ahora?

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby FranciscoA » Wed Jun 11, 2014 8:03 pm

Goosfancito.
Talvez este ejemplo pueda servirte de guia:
Code: Select all  Expand view  RUN
  ACTIVATE WINDOW oChild MAXIMIZED;
      ON INIT ( Color_oBot(oBot1,"ORO"), Color_oBot(oBot2,"PLATA")
---
---
Function Color_oBot(oBot,cColor)
DEFAULT cColor := NIL
IF !cColor = NIL
  if cColor = "ORO"
     oBot:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
     { { 1.00,14481663,38075 }, ;
       { 1.00,38075,14481663 } }, ;
     { { 0.10,16777215,9363707 },;
       { 0.10,9363707,16777215 } } ) }
     oBot:SetColor(0)

  elseif cColor = "PLATA"
     oBot:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
     { { 0.30,12961221,16777215 },;
       { 0.30,16777215,12961221 } },;
     { { 0.10,9363707,16777215 },;
       { 0.10,16777215,9363707 } } ) }
     oBot:SetColor(0)

  endif
ENDIF
Return nil
 

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: cambiar el color a un boton?

Postby goosfancito » Wed Jun 11, 2014 10:23 pm

Hola!

Algo no me esta andando en el boton porque bClrGrad no me hace nada. ya probe los ejemplos anteriores. voy a hacer un prg simple y voy a ver que pasa.

gracias a ambos.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby FranciscoA » Thu Jun 12, 2014 3:24 am

Goos, un ejemplo auto contenido:
Code: Select all  Expand view  RUN
#Include "FiveWin.Ch"
//--------------------------//BOTONES DE DIFERENTES COLORES
Function Main()   //ColorBtns()
local oDlg,oBt1,oBt2
DEFINE DIALOG oDlg FROM 5,5 TO 10,60 TITLE "BOTONES DE COLORES"
@ 3,2  BTNBMP oBt1 PROMPT "Un Color"   SIZE 60,20 ACTION MsgInfo("Nada que hacer")
@ 3,80 BTNBMP oBt2 PROMPT "Otro Color" SIZE 60,20 ACTION oDlg:End()

Color_oBot(oBt1,"ORO")
Color_oBot(oBt2,"PLATA")

ACTIVATE DIALOG oDlg Centered
Return nil
//------------------------------
Function Color_oBot(oBot,cColor)
DEFAULT cColor := NIL
IF !cColor = NIL
  if cColor = "ORO"
     oBot:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
     { { 1.00,14481663,38075 }, ;
       { 1.00,38075,14481663 } }, ;
     { { 0.10,16777215,9363707 },;
       { 0.10,9363707,16777215 } } ) }
     oBot:SetColor(0)

  elseif cColor = "PLATA"
     oBot:bClrGrad = { | lMouseOver | If( ! lMouseOver,;
     { { 0.30,12961221,16777215 },;
       { 0.30,16777215,12961221 } },;
     { { 0.10,9363707,16777215 },;
       { 0.10,16777215,9363707 } } ) }
     oBot:SetColor(0)
  endif
ENDIF
Return nil
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: cambiar el color a un boton?

Postby goosfancito » Thu Jun 12, 2014 10:31 am

anda perfecto.
ahora voy a ver que es lo que yo hago mal.
gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby goosfancito » Thu Jun 12, 2014 11:55 am

Solucionado!

simple cuando se lo entiende:

Code: Select all  Expand view  RUN
redefine button obtn....

obtn:SetColor(COLOR_DEL_TEXTO_EN_RGB, COLOR_FONDO_EN_RGB)
 

Code: Select all  Expand view  RUN
ejemplo:
obtn:SetColor(RGB(0, 0, 0), RGB(255, 255, 0))


gracias a todos.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: cambiar el color a un boton?

Postby Giovany Vecchi » Tue Mar 06, 2018 4:25 pm

No controle de ButtonBmp não funciona
Eu quero trocar a cor do texto do botão. a variavel bClrGrad funciona com BtnBmp mais não funciona com ButtonBmp

Method Setcolor() tambem não funcionou

Acho que neste caso deveria usar SendMessage, mais tambem não comsegui.
User avatar
Giovany Vecchi
 
Posts: 223
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: FiveWiDi and 104 guests