FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour cambiar el color a un boton?
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
cambiar el color a un boton?
Posted: 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/
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: cambiar el color a un boton?
Posted: Wed Jun 11, 2014 12:50 PM
Goosfancito...

Espero este te sirva...

Code (fw): Select all Collapse
   
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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: cambiar el color a un boton?
Posted: Wed Jun 11, 2014 12:56 PM

gracias!

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: cambiar el color a un boton?
Posted: Wed Jun 11, 2014 02:28 PM
Estoy probando lo que me dijiste:
Code (fw): Select all Collapse
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/
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: cambiar el color a un boton?
Posted: Wed Jun 11, 2014 03: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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: cambiar el color a un boton?
Posted: Wed Jun 11, 2014 05: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/
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: cambiar el color a un boton?
Posted: Wed Jun 11, 2014 08:03 PM
Goosfancito.
Talvez este ejemplo pueda servirte de guia:
Code (fw): Select all Collapse
   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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: cambiar el color a un boton?
Posted: 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/
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: cambiar el color a un boton?
Posted: Thu Jun 12, 2014 03:24 AM
Goos, un ejemplo auto contenido:
Code (fw): Select all Collapse
#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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: cambiar el color a un boton?
Posted: 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/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: cambiar el color a un boton?
Posted: Thu Jun 12, 2014 11:55 AM
Solucionado!

simple cuando se lo entiende:

Code (fw): Select all Collapse
redefine button obtn....

obtn:SetColor(COLOR_DEL_TEXTO_EN_RGB, COLOR_FONDO_EN_RGB)

Code (fw): Select all Collapse
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/
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: cambiar el color a un boton?
Posted: Tue Mar 06, 2018 04: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.

Continue the discussion