Page 1 of 2

error en BUTTONBMP

Posted: Mon Sep 24, 2007 11:55 am
by MOISES
Antonio,

Pues sigue sin ir en el Build de sept. En este código, que es samples\testbubm.prg, pones el cursor encima del botón y NO se muestra el mensaje:


#include "FiveWin.ch"

#define COLOR_BTNFACE 15

//----------------------------------------------------------------------------//

function Main()

local oWnd, oBtnBmp

DEFINE WINDOW oWnd TITLE "FiveWin Xp Theme-aware bitmaped buttons" ;
COLOR 0, GetSysColor( COLOR_BTNFACE )


@ 2, 2 BUTTONBMP oBtnBmp OF oWnd ACTION MsgInfo( "XP themes aware Button Bitmaps" ) ;
BITMAP "..\bitmaps\16x16\garrow.bmp" MESSAGE "Calendario"


@ 6, 2 BUTTON "From Resources" OF oWnd SIZE 90, 25 ACTION nil MESSAGE "Calendario"

ACTIVATE WINDOW oWnd

return nil

Posted: Mon Sep 24, 2007 3:13 pm
by Antonio Linares
Moises,

Te falta la creación del statusbar. Este ejemplo funciona correctamente:

Code: Select all

// Testing Win32 XP Theme-aware bitmaped buttons
// Important: Use standard buttons on the resources!

#include "FiveWin.ch"

#define COLOR_BTNFACE   15

//----------------------------------------------------------------------------//

function Main()

   local oWnd, oBtnBmp

   DEFINE WINDOW oWnd TITLE "FiveWin Xp Theme-aware bitmaped buttons" ;
      COLOR 0, GetSysColor( COLOR_BTNFACE )


   @ 2, 2 BUTTONBMP oBtnBmp OF oWnd ACTION MsgInfo( "XP themes aware Button Bitmaps" ) ;
      BITMAP "..\bitmaps\16x16\garrow.bmp"

   @ 4, 2 BUTTONBMP oBtnBmp OF oWnd ACTION MsgInfo( "XP themes aware Button Bitmaps" ) ;
      BITMAP "..\bitmaps\16x16\garrow.bmp" PROMPT "Test" TEXTRIGHT SIZE 80, 25 ;
      MESSAGE "From source code"
      
   @ 6, 2 BUTTON "From Resources" OF oWnd SIZE 90, 25 ACTION FromResources()   

   DEFINE STATUSBAR OF oWnd PROMPT "StatusBar"
      
   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//

function FromResources()

   local oDlg
   
   DEFINE DIALOG oDlg RESOURCE "Test"
   
   REDEFINE BUTTONBMP ID 10 OF oDlg ;
      ACTION MsgInfo( "XP themes aware Button Bitmaps" ) ;
      BITMAP "..\bitmaps\16x16\garrow.bmp"
   
   ACTIVATE DIALOG oDlg

return nil

//----------------------------------------------------------------------------//

Posted: Mon Sep 24, 2007 3:29 pm
by MOISES
Antonio,

Lo que quiero es que se muestre el mensaje cuando pones el ratón por encima, como si funciona la clausula TOOLTIP de BTNBMP.

He probado con MESSAGE y PROMPT y NO funciona.

Posted: Tue Sep 25, 2007 8:17 pm
by Antonio Linares
Moises,

El ejemplo que te he indicado anteriormente funciona correctamente.

Puedes modificarlo para mostrar lo que quieres hacer ? gracias

Posted: Wed Sep 26, 2007 7:44 am
by MOISES
Antonio,

Lo que quiero es que funcione como TOOLTIP de BTNBMP, que NO requiere poner una STATUS bar. ¿Cómo se hace?.

Muchas gracias.

Posted: Wed Sep 26, 2007 7:48 am
by Antonio Linares
Moises,

Code: Select all

   @ 4, 2 BUTTONBMP oBtnBmp OF oWnd ACTION MsgInfo( "XP themes aware Button Bitmaps" ) ;
      BITMAP "..\bitmaps\16x16\garrow.bmp" PROMPT "Test" TEXTRIGHT SIZE 80, 25 ;
      MESSAGE "From source code"
      
   oBtnBmp:cToolTip = "Tooltip text"   

Posted: Wed Sep 26, 2007 3:47 pm
by MOISES
Antonio,

¿Y por qué no modificas la clase para que funcione como BTNBMP, añadiendo el método TOOLTIP, pues lo considero imprescindible, el hecho de que pongas el cursor por encima y diga a qué corresponde el botón?.

Un saludo

Posted: Wed Sep 26, 2007 5:19 pm
by Antonio Linares
Moises,

Funciona exactamente igual, salvo que no está implementado el usar TOOLTIP en el comando de creación del control. Esto es algo típico en muchos controles de FWH, en donde sólo has de hacer:

<oControl>:cTooTip = cText

Posted: Wed Sep 26, 2007 6:13 pm
by MOISES
Antonio,

El problema es que yo defino el control así:

REDEFINE BUTTONBMP BITMAP "BMPCALEN" ID 600 OF oDlg ACTION ( MsgDate(Nil, "Seleccione una fecha", oGet) ) MESSAGE "Calendario"

Es decir, sin poner referencia al objeto, por lo que no puedo poner lo que tu me dices. Creo que es un cambio muy interesante y que no te lleva mucho tiempo, cortar y pegar lo de la clase BTNBMP.

Muchas gracias por tu atención.

Posted: Thu Sep 27, 2007 8:39 pm
by Antonio Linares
Solo tienes que añadir una referencia al objeto:

REDEFINE BUTTONBMP oBmp BITMAP "BMPCALEN" ID 600 OF oDlg ACTION ( MsgDate(Nil, "Seleccione una fecha", oGet) ) MESSAGE "Calendario"

Posted: Fri Sep 28, 2007 8:15 am
by MOISES
Antonio,

¿Tan complicado es que añadas el método a la clase?. Por favor, no te lo pido para hoy, pero creo que no lleva tiempo y es necesario ;). ¿Por qué dos clases que hacen lo mismo tienen sintaxis diferente?.

Muchas gracias. Un saludo

Posted: Fri Sep 28, 2007 11:00 pm
by Antonio Linares
Moises,

No, no es complicado y lo vamos a hacer.

Solo te estamos indicando una solución mientras tanto :-)

Posted: Mon Oct 01, 2007 8:03 am
by MOISES
Antonio,

Muchas gracias y perdona el malentendido. Siempre he apreciado tu soporte y profesionalidad, y me extrañó que no fueras a mejorar la clase.

Un saludo

Posted: Wed Oct 03, 2007 5:57 am
by Antonio Linares
Moises,

Tras revisar FiveWin.ch vemos que REDEFINE BUTTON ... no soporta la cláusula TOOLTIP.

Te refieres a TOOLTIP ó a MESSAGE ?

Posted: Wed Oct 03, 2007 3:02 pm
by MOISES
Antonio:

Lo que quiero es que el siguiente TOOLTIP:

REDEFINE BTNBMP RESOURCE "UP" ID 601 OF oDlgTI ACTION (oLbxTI:GoUp() ) NOBORDER TOOLTIP "Arriba"

lo pueda hacer con BUTTONBMP, de modo que cuando pones el cursor del ratón encima del BUTTONBMP aparezca el tooltip, y sin necesidad de statusbar ni nada, sería así:

REDEFINE BUTTONBMP BITMAP "UP" ID 601 OF oDlgTI ACTION (oLbxTI:GoUp() ) MESSAGE "Arriba"


Muchas gracias!!!. Un saludo,