Page 1 of 1

problemas con las toolbars y rebars

Posted: Wed Jan 24, 2007 9:10 am
by José Luis Sánchez
Hola:
Estoy intentando cambiar una buttonbar por una toolbar en un programa. La llamada al método que crea la toolbar en la ventana principal la pongo despues de definir la ventana y antes de activarla. El codigo que uso es este:

Code: Select all

::oImgList = TImageList():New( 44, 44 ) // width and height of bitmaps

   ::oImgList:AddMasked( TBitmap():Define( "BB_ACTIVIDAD",, ::oWndMain ), nRGB( 255, 0, 255 ) )

   ::oReBar = TReBar():New( ::oWndMain )

   ::oToolBar = TToolBar():New( ::oReBar, 50, 50, ::oImgList, .t. )

   ::oToolBar:AddButton( { || Actividad() }, "Gestión del fichero de actividades", )
   ::oToolBar:AddSeparator()

   ::oToolBar:nWidth = 290

   ::oReBar:InsertBand( ::oToolBar )
y cuando lanzo el programa se crea la toolbar pero el bitmap de dentro no aparece. El recurso existe, es el mismo que usaba en un botón de la btnbar. Además cuando hago click en el boton el programa se cuelga irremediablemente.

Tengo FWH 2.7 de diciembre de 2005 y xHB 0.99.6

¿ Alguna idea de que puede pasar ?

Saludos,

Posted: Wed Jan 24, 2007 9:13 am
by José Luis Sánchez
Olvide decir que los ejemplos de toolbars que tengo en SAMPLES van de coña.
:(

Posted: Wed Jan 24, 2007 9:13 am
by Antonio Linares
José Luis,

Los bitmaps que usas miden todos igual y son de 44x44 como indicas en el código ?

Posted: Wed Jan 24, 2007 9:23 am
by José Luis Sánchez
Antonio:
Eso lo copie de un jemplo y está mal. Los bitmaps que uso son de 36*36 y ya lo he corregido.
Ahora me queda arreglar lo del cuelgue del programa. Con el butonbar me iba de coña asi:

Code: Select all

   DEFINE BUTTON OF ::oBar ;
      RESOURCE "BB_ACTIVIDAD";
      TOOLTIP i18n( "Gestión de ejercicios y actividades" ) ;
      MESSAGE i18n( "Gestión del fichero de ejercicios y actividades." ) ;
      ACTION Actividad()    ;
      NOBORDER
No entiendo porque con esto

Code: Select all

::oToolBar:AddButton( { || Actividad() }, "Gestión del fichero de actividades", )
se cuelga el programa. No se si es por lo que dije de donde creo la toolbar, lo hago despues del define window y antes del activate, llamando a un método de la clase de la aplicación. ¿ Hay que crear la toolbar en el on init de la ventano o eso es sólo para dialogos ?

Saludos,

Posted: Wed Jan 24, 2007 9:51 am
by Antonio Linares
José Luis,

Es correcto como la creas. Has probado a llamar a MsgInfo() en vez de a Actividad() y ver si funciona ?

Cuando dices cuelgue te refieres a un GPF ó a que la aplicación deja de responder ?

Posted: Wed Jan 24, 2007 10:44 am
by José Luis Sánchez
Si hago un msginfo si que me lo saca, pero la llamada a la función que hace el matenimineto cluega el programa. No es un GPF, sino que el programa deja de funcionar.

Saludos,