FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SBUTTON con lMouseOver
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
SBUTTON con lMouseOver
Posted: Tue Nov 03, 2009 03:57 PM
Compa帽eros

utilizando la clase TSBUTTON de Manuel Mercado, cambio el color de los button en tiempo de ejecuci贸n, pero no consigo cambiar el color del button cuando paso el rat贸n por encima de ellos.

El codigo es:
Code (fw): Select all Collapse
Define Dialog...
...
聽 REDEFINE SBUTTON odia[ 7] ID 4007 OF ocalen Font ofont NOBORDER ROUNDRECT 
聽 REDEFINE SBUTTON odia[ 8] ID 4008 OF ocalen Font ofont NOBORDER ROUNDRECT
聽 REDEFINE SBUTTON odia[ 9] ID 4009 OF ocalen Font ofont NOBORDER ROUNDRECT
聽 REDEFINE SBUTTON odia[10] ID 4010 OF ocalen Font ofont NOBORDER ROUNDRECT
...
Activate dialog...


Y en tiempo de ejecuci贸n cambio los colores de esta forma:
Code (fw): Select all Collapse
聽 聽 odia[x]:Setcolor(CLR_HGRAY, iif( odia[x]:lMouseOver, rgb(240,205,240),rgb(220,145,220)))


...Al pasar el rat贸n por encima del bott贸n este NO cambia. 驴 Que hago mal ?
...Sin embargo si establezco el color en el REDEFINE funciona perfectamente. As铆:
Code (fw): Select all Collapse
REDEFINE SBUTTON odia[ 7] ID 4007 OF ocalen Font ofont NOBORDER ROUNDRECT COLORS CLR_HGRAY ,{ |odia| If( odia:lMouseOver, rgb(240,205,240),rgb(220,145,220)) }


Mil gracias.
LORENZO
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: SBUTTON con lMouseOver
Posted: Tue Nov 03, 2009 05:26 PM
Hola Lorenzo:
Loren wrote:utilizando la clase TSBUTTON de Manuel Mercado, cambio el color de los button en tiempo de ejecuci贸n, pero no consigo cambiar el color del button cuando paso el rat贸n por encima de ellos.

Prueba lo siguiente:
odia[x]:Setcolor( { 1, 2 }, {CLR_HGRAY,iif( odia[x]:lMouseOver,rgb(240,205,240),rgb(220,145,220))} )

Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: SBUTTON con lMouseOver
Posted: Tue Nov 03, 2009 10:14 PM

Maestro Manuel,

desgraciadamente su propuesta no funcion贸. De esta manera me pinta un GRADIENT en cada button.

No obstante, mil gracias por su tiempo.
LORENZO.

Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 04, 2009 01:04 PM

Compa帽eros:

驴 Alguien me puede orientar ?
驴 Alguna otra sugerencia, maestro Manuel ?

Mil gracias.
LORENZO.

Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 04, 2009 01:25 PM
Loren wrote:驴 Alguien me puede orientar ?
驴 Alguna otra sugerencia, maestro Manuel ?

Disculpa Lorenzo, al parecer ya estaba cansado en mi respuesta anterior, lo siguiente seguramente te funcionar谩:

odia[x]:Setcolor(CLR_HGRAY,{||iif( odia[x]:lMouseOver,rgb(240,205,240),rgb(220,145,220))})

Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 04, 2009 10:27 PM

Maestro,

no quisiera convertirme en una pesadilla suya... pero me marca el siguiente error:

"Descripcion del error: Error BASE/1003 No existe la variable: X" .. y a continuaci贸n aborta el EXE.

Mis conocimientos son limitados y no llegan hasta este nivel.

Un saludo.
LORENZO

Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: SBUTTON con lMouseOver
Posted: Thu Nov 05, 2009 04:21 AM
Hola Lorenzo:
Loren wrote:no quisiera convertirme en una pesadilla suya... pero me marca el siguiente error:
"Descripcion del error: Error BASE/1003 No existe la variable: X" .. y a continuaci贸n aborta el EXE.

Strike dos !!! :-)

Espero no me cantes el tercer strike :-) , prueba de esta forma:
odia[x]:Setcolor(CLR_HGRAY,{|oBtn|iif( oBtn:lMouseOver,rgb(240,205,240),rgb(220,145,220))})

Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: SBUTTON con lMouseOver
Posted: Thu Nov 05, 2009 08:19 AM
Manuel,

Lamento decirle "Strike tres!!"

Me casca con el siguiente error:

Descripcion del error: Error BASE/1004 Class: 'NIL' has no exported method: LMOUSEOVER
Args:
[ 1] = U

Stack Calls
===========
llamada desde: => LMOUSEOVER(0)


El PRG trata de un calendario y acabo de darme cuenta que cuando refresco el calendario pasando de un mes a otro, si el mouse se encuentra (en el momento del refresco) encima de un d铆a cualquiera, este me lo dibuja respetando el color LmouseOver, aunque el color se queda est谩tico y no var铆a si muevo el rat贸n. 驴Ser谩 esta alguna pista?

Mil gracias por su dedicaci贸n, colaboraci贸n y tiempo invertido.
LORENZO.
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: SBUTTON con lMouseOver
Posted: Thu Nov 05, 2009 06:37 PM

Hola Lorenzo:

Me rindo, con mucho gusto te ayudar茅 si me muestras el programa autocontenido dode pueda reproducir el error.

Un abrazo.

manuelmercado at prodigy dot net dot mx
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Re: SBUTTON con lMouseOver
Posted: Tue Nov 10, 2009 12:23 AM

COLOR_BUTTON {|oBtn|If(oBtn:lMouseOver.or.oBtn:lFocused,COLOR_MAGENTA,If(oBtn:lPressed,COLOR_GRIS,COLOR_NEGRO))},{|oBtn|If(oBtn:lMouseOver.or.oBtn:lFocused,COLOR_SMAGENTA,If(oBtn:lPressed,COLOR_BLANCO,COLORX))}

No茅 Aburto S谩nchez
Tec. Prog. de Sistemas. -Morelia, Mich. M茅xico.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: SBUTTON con lMouseOver
Posted: Tue Nov 10, 2009 12:22 PM
Lorenzo
Con la TSButton 6.3, y desde varias versiones anteriores, lo uso asi:
Code (fw): Select all Collapse
{|oBtn| if( !oBtn:lActive, CLR_GRAY, if( oBtn:lMouseOver, CLR_BMNPPL, CLR_HBLUE )) }

y siempre funciona Ok.

Saludos
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 11, 2009 09:26 AM
Hola Lorenzo:

Despu茅s de revisar y probar tu programa, las llamadas al m茅todo SetColor en la funci贸n DibujaDias quedan como sigue:
Code (fw): Select all Collapse
 聽 If found()
聽 聽 聽 odia[x]:Setcolor({||iif(Dow(FecIni)=1,CLR_HRED,CLR_GREEN)}, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{|oDia|Iif( oDia:lMouseOver, aDeColores[oListacol:nAt,2],rgb(255, 255,128))})
聽 聽Else
聽 聽 聽 odia[x]:Setcolor({||iif(Dow(FecIni)=1,CLR_HRED,iif(Month(FecIni)!=Month(FecActu),CLR_HGRAY,CLR_WHITE))},;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{|oDia|iif( oDia:lMouseOver,aDeColores[oListacol:nAt,1],aDeColores[oListacol:nAt,2])})

Av铆same del resultado.

Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 11, 2009 10:40 PM
Maestro,

es curioso, pero a m铆 me muestra el siguiente error:
Code (fw): Select all Collapse
   Descripcion del error: Error BASE/1004  Class: 'NIL' has no exported method: LMOUSEOVER
   Args:
     [   1] = U   

Stack Calls
===========
   llamada desde:  => LMOUSEOVER(0)
   llamada desde: C:\programacion\audicion\prg\calendar.prg => (b)DIBUJADIAS(140)


Incluso probando como recomiendan Mario G y Noe Aburto, tambi茅n me genera el mismo error.

No obstante, al ser un mero problema "est茅tico" y no funcional, no me genera mucha preocupaci贸n, mas bien curiosidad.
Mil gracias.
LORENZO
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 11, 2009 10:44 PM

Loren
Entonces, quiz谩s, deber铆as bajar la 煤ltima versi贸n y compilarla (salvo que sea la que tenes compilada :cry: )

saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: SBUTTON con lMouseOver
Posted: Wed Nov 11, 2009 11:39 PM
Hola Lorenzo:
Loren wrote:Maestro,

es curioso, pero a m铆 me muestra el siguiente error:
Code (fw): Select all Collapse
 聽 Descripcion del error: Error BASE/1004 聽Class: 'NIL' has no exported method: LMOUSEOVER
聽 聽Args:
聽 聽 聽[ 聽 1] = U 聽 

Stack Calls
===========
聽 聽llamada desde: 聽=> LMOUSEOVER(0)
聽 聽llamada desde: C:\programacion\audicion\prg\calendar.prg => (b)DIBUJADIAS(140)

Incluso probando como recomiendan Mario G y Noe Aburto, tambi茅n me genera el mismo error.
No obstante, al ser un mero problema "est茅tico" y no funcional, no me genera mucha preocupaci贸n, mas bien curiosidad.

El problema no es de TSButton, tienes que revisar la l贸gica de tu programa.

Aqu铆 te muestro la parte que me enviaste de tu programa funcionando al 100% en lo que a TSButton se refiere:
http://www.mediafire.com/file/iyi2uknmnjz/Calendar.zip

Un abrazo.
manuelmercado at prodigy dot net dot mx

Continue the discussion