Page 1 of 2

Problema con ReBar

Posted: Fri Feb 02, 2007 5:55 pm
by Marco A. Delgado
Hola... :D

Tengo el siguiente problema, cuando minimizo la ventana pricipal que tiene una ReBar sucede lo siguiente:

Esta imagen es cuando se inicia la áplicación.
Image
[/img]

y esta despues de minimizar la aplicación.
Image
[/img]

Como veran hace un espacio entre la ReBar y el Browse como si hubiera otra Rebar insertada.

Este es el codigo:

Code: Select all

      DEFINE IMAGELIST ::oImageList SIZE 32, 32

             ::oImageList:AddMasked( TBitmap():Define( "Capturas",, ::oWndMain ), nRGB( 255, 0, 255 ) )
             ::oImageList:AddMasked( TBitmap():Define( "Bus",, ::oWndMain ), nRGB( 255, 0, 255  ) )
             ::oImageList:AddMasked( TBitmap():Define( "Rutas",, ::oWndMain ), nRGB( 255, 0, 255 ) )

      DEFINE IMAGELIST ::oImageList2 SIZE 32, 32

             ::oImageList2:AddMasked( TBitmap():Define( "Index",, ::oWndMain ), nRGB( 255, 0, 255 ) )
             ::oImageList2:AddMasked( TBitmap():Define( "Import",, ::oWndMain ), nRGB( 255, 0, 255  ) )

      DEFINE IMAGELIST ::oImageList3 SIZE 32, 32

             ::oImageList3:AddMasked( TBitmap():Define( "Respaldo",, ::oWndMain ), nRGB( 255, 0, 255 ) )
             ::oImageList3:AddMasked( TBitmap():Define( "Restaura",, ::oWndMain ), nRGB( 255, 0, 255 ) )

      DEFINE IMAGELIST ::oImageList4 SIZE 32, 32

             ::oImageList4:AddMasked( TBitmap():Define( "Salir",, ::oWndMain ), nRGB( 255, 0, 255 ) )


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

      DEFINE TOOLBAR ::oBar OF ::oReBar SIZE 40, 40 IMAGELIST ::oImageList BALLOON

             DEFINE TBBUTTON OF ::oBar ;
                    ACTION  Captura()  ;
                    TOOLTIP i18n( "Capturas" ) ;
                    MESSAGE i18n( "Gestión de Capturas de Ingresos y Egresos." )

             DEFINE TBBUTTON OF ::oBar ;
                    ACTION  Unidades() ;
                    TOOLTIP i18n( "Unidades" ) ;
                    MESSAGE i18n( "Flotilla de Unidades." )

             DEFINE TBBUTTON OF ::oBar ;
                    ACTION  Rutas()    ;
                    TOOLTIP i18n( "Rutas" )  ;
                    MESSAGE i18n( "Catálago de Rutas." )


	DEFINE TOOLBAR ::oBar2 OF ::oReBar SIZE 40, 40 IMAGELIST ::oImageList2 BALLOON

             DEFINE TBBUTTON OF ::oBar2 ;
                    ACTION  Indices(.F., cEmpresa) ;
                    TOOLTIP i18n( "Verificar Archivos" ) ;
                    MESSAGE i18n( "Verificación de los Archivos del Sistema." )

             DEFINE TBBUTTON OF ::oBar2 ;
                    ACTION  ImporDatos() ;
                    TOOLTIP i18n( "Importaciones de Datos" ) ;
                    MESSAGE i18n( "Importación de Datos Externos." )


	DEFINE TOOLBAR ::oBar3 OF ::oReBar SIZE 40, 40 IMAGELIST ::oImageList3 BALLOON

             DEFINE TBBUTTON OF ::oBar3 ;
                    ACTION  Respaldo()    ;
                    TOOLTIP i18n( "Respaldo de Archivos" ) ;
                    MESSAGE i18n( "Respaldo de los Archivos del Sistema." )

             DEFINE TBBUTTON OF ::oBar3 ;
                   TOOLTIP i18n(AnsiToOem("Restauración de Archivos")
                   MESSAGE i18n( "Restaurar un Respaldo de los Archivos del Sistema." )


	DEFINE TOOLBAR ::oBar4 OF ::oReBar SIZE 40, 40 IMAGELIST ::oImageList4 BALLOON

             DEFINE TBBUTTON OF ::oBar4 ;
                    ACTION  ::ExitFromBtn() ;
                   TOOLTIP i18n( "Salir del Sistema" ) ;
                   MESSAGE i18n( "Finalizar el uso del Sistema." )

        ::oBar:nWidth   := 110
        ::oBar2:nWidth  :=  80
        ::oBar3:nWidth  :=  80
        ::oBar4:nWidth  := 330

        ::oReBar:InsertBand( ::oBar )
        ::oReBar:InsertBand( ::oBar2 )
        ::oReBar:InsertBand( ::oBar3 )
        ::oReBar:InsertBand( ::oBar4 )
Alguien le ha sucedido lo mismo o me podrian decir cual es mi error.

Saludos
Marco A. Delgado.

.

Posted: Fri Feb 02, 2007 6:00 pm
by TecniSoftware
Yo uso las rebars con tsbrowse y no tengo esos problemas,

Tienes puesto oWnd:SetControl( oBrw ) ?

Lo he colocado en la cláusula "on paint" al activar la ventana.

Salu2
Alejandro.

Posted: Fri Feb 02, 2007 6:11 pm
by Marco A. Delgado
Hola

Estoy de acuerdo contigo, pero el browse (que es xBrowse) lo coloco sobre una ventana hija, la rebar esta sobre la ventana principal.

Saludos
Marco A. Delgado

Posted: Fri Feb 02, 2007 6:59 pm
by Marco A. Delgado
Hola.

Siguiendo con el problema, ahora cuando le doy click al boton de restaurar de la ventana principal (MDI) sucede esto:

Image
[/img]

Como veran el error se corrige, pero la vuelvo a minimizar y restaurar, vuelve a suceder lo mismo:
Image
[/img]

Ahora maximizo la ventana y se corrige el problema.
Image
[/img]

Hay algun problema con las ventanas MDI y MDICHILD, ahora cambiando la ReBar por la Barra de Botones normales o la TSBAR, no sucede nada de esto solo con la Rebar, que es lo que estoy haciendo mal.


Saludos
Marco A. Delgado

Posted: Sat Feb 03, 2007 9:29 am
by Antonio Linares
Marco,

Prueba esto:

::oReBar := TReBar():New( ::oWndMain )
::oReBar:nHeight = 40
...

Posted: Sat Feb 03, 2007 6:53 pm
by Marco A. Delgado
Hola Antonio.

Gracias por responder, pero no funciona tu ejemplo, el error con la ReBar solo se da si son mas de 2 TOOLBAR dentro de la Rebar.

Saludos

Marco A. Delgado.

Posted: Sat Feb 03, 2007 8:35 pm
by Antonio Linares
Marco,

Prueba a modificar el dato nTop del browse:

oBrw:nTop = oReBar:nHeight + 1

Posted: Sun Feb 04, 2007 6:00 pm
by Frafive
El fallo no esta en la rebar es del xbrowse, algun hdc o algo va mal, cambialo por un twbrowse y veras como te funciona perfecto.

Posted: Mon Feb 05, 2007 6:33 pm
by Marco A. Delgado
Ok, tal vez tengas razon, Frafive

Pero con solo poner una sola ToolBar en la ReBar, funciona perfectamente.

Seguire buscando, gracias a Todos por su ayuda, checare lo que me dice Antonio y ver si funciona.

Saludos.
Marco A. Delgado.

Posted: Wed Feb 14, 2007 6:08 pm
by A&C
Buenas..

EStimado Marco,, encontraste la solucion a tu problema ,, ya q a mi me paso lo mismo

si es asi... me comentas

GRACIAS

Posted: Thu Feb 15, 2007 3:32 pm
by Marco A. Delgado
Hola A&C (la verdad...no se como te llamas)... :D

No lo he resuelto... aun...!! lo que hice es solo poner una toolbar y asi no hay problema.


Saludos
Marco A. Delgado.

Re: Problema con ReBar

Posted: Mon Mar 01, 2010 11:04 pm
by pedrog
Alguien resolvió este problema ?. A mi me ocurre sólo en la ventana principal, en las ventanas childs no ocurre lo mismo.

Al iniciar la aplicación, la toolbar y el fondo de la ventana se ven así:
Image

Si se minimiza la aplicación, al restaurarla se ve así:
Image

Es curioso porque en la ventana principal, si la redimensionas a su tamaño se corrige el efecto y pinta el fondo de la venta principal correctamente.
Image

Es un problema de la toolbar o es un problema de la ventana ?.

el código es :

Code: Select all

   DEFINE WINDOW oWinMain                    ;
          FROM 0, 0 TO 24, 79                ;
          COLOR "W+/W"                       ;
          TITLE  CompName()                  ;
          MENU   MainMenu()                  ;
          ICON   oIcon                       ;
          MDI menuinfo 4


// Barra de Botones ToolBar

   // First we build the imagelists with all the bitmaps
   DEFINE IMAGELIST oImgList1 SIZE 32, 32

   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_16"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_29"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_28"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_31"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_39"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_25"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_14"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_19"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_23"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_61"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_1"   COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_40"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_70"  COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_2"  COLOR nRGB( 255, 0, 255 )   // Tipo colab
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_59"  COLOR nRGB( 255, 0, 255 )   // Modopago
   DEFINE IMGBITMAP OF oImgList1 NAME "BITMAP_53"  COLOR nRGB( 255, 0, 255 )   // Peripago

   // Now we create the rebar
   DEFINE REBAR oReBar OF oWinMain

   // Now we create the toolbars and add the buttons
   DEFINE TOOLBAR oToolBar1 OF oReBar SIZE 37, 37 ;
      IMAGELIST oImgList1 //BALLOON


   // Now we create the toolbars2 without images, only for see the init picture in the bar
   DEFINE TOOLBAR oToolBar2 OF oReBar SIZE 0, 0

   //oToolBar2:lTransparent:=.T.
   //oToolBar1:nHeight -= 2
   //oToolBar2:nHeight -= 2


    // We set the widths for each toolbar
   oToolBar1:nWidth =550
   oToolBar2:nWidth = 1

   // Now we insert the toolbars into the rebar
   oReBar:InsertBand( oToolBar1 )
   oReBar:InsertBand( oToolBar2 )


   // Definimos los botones
   DEFINE TBBUTTON OF oToolBar1   ;
      ACTION  oWinMain:End()      ;
      TOOLTIP "Cerrar aplicación"

   DEFINE TBSEPARATOR OF oToolBar1

   DEFINE TBBUTTON OF oToolBar1   ;
      ACTION  paramgen( oWinMain )        ;
      TOOLTIP "Parámetros,"+chr(13)+"Configuración del sistema."

   DEFINE TBBUTTON OF oToolBar1   ;
      ACTION  TipOfDay( ".\ASOCW.ini" )   ;
      TOOLTIP "Notas de ayuda rápidas"

   DEFINE TBBUTTON OF oToolBar1   ;
      ACTION  HelpIndex()           ;
      TOOLTIP "Indice de la Ayuda"
...

  ACTIVATE WINDOW oWinMain MAXIMIZED;
          ON INIT ( TipOfDay( ".\Asocw.ini" ) );
          ON PAINT (FillWnd( oWinmain:oWndClient, nColor, oBmpTiled, 7 ), oRebar:Refresh() );
          ON RIGHT CLICK ( nColor := ChooseColor(),;
                           IF(nColor<>0,;
                              FillWnd( oWinmain:oWndClient, nColor, oBmpTiled, 7 ),;
                              FillWnd( oWinmain:oWndClient, nColor:=nRGB( 230, 247, 255), oBmpTiled, 7 ) )  );
          VALID (  __ExitMsg() )

  oImgList1:End()

RETURN ( NIL )

 

Re: Problema con ReBar

Posted: Tue Mar 02, 2010 2:36 pm
by jll-fwh
Hola a todos:

Acabo de probarlo y a mi no me sucede eso, defino la barra de esta forma:

/*------------------------------------------------------------------------------*/
Function FrameBar( oWnd )
/*------------------------------------------------------------------------------*/
LOCAL oCursor, nFor

DEFINE CURSOR oCursor HAND

DEFINE BUTTONBAR oBar _3D SIZE 45, 45 OF oWnd

DEFINE BUTTON RESOURCE "MenuP_Tablas" OF oBar NOBORDER;
TOOLTIP "Tablas";
MENU BuildPopup()

DEFINE BUTTON RESOURCE "MenuP_Indexar" OF oBar NOBORDER;
TOOLTIP "Ordena Bases de Datos";
ACTION ( CreaIndices( oWnd ) )

DEFINE BUTTON RESOURCE "BotonSalir" OF oBar NOBORDER;
TOOLTIP "Salir del Programa" ACTION Salir()

oBar:bRClicked := {|| NIL }
oWnd:lBalloon := .T.

FOR nFor := 1 TO len(oBar:aControls)
oBar:aControls[nFor]:oCursor := oCursor
SysRefresh()
NEXT

Return( oBar )

Un saludo
JLL

Re: Problema con ReBar

Posted: Tue Mar 02, 2010 5:46 pm
by pedrog
Hola JLL,
el tema es que no estamos hablando de buttonbar sino de toolbar, es más, hablamos de 2 toolbars en la ventana principal.

Saludos!

Re: Problema con ReBar

Posted: Tue Mar 02, 2010 7:26 pm
by jll-fwh
Hola PedroG:

Perdon, copie la funcion que no era. Pero efectivamente con 2 o mas tiene el comportamiento que se comenta, pero en cambio con una solo no. Esto tendria que verificarlo antonio, ya que es un bug de la clase.

Intentare esta noche hacer algunas pruebas mas a ver.

Un saludo
JLL