Problema con ReBar

User avatar
Marco A. Delgado
Posts: 126
Joined: Fri Oct 07, 2005 4:20 pm
Location: Veracruz, México

Problema con ReBar

Post 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.
User avatar
TecniSoftware
Posts: 213
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

.

Post 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.
User avatar
Marco A. Delgado
Posts: 126
Joined: Fri Oct 07, 2005 4:20 pm
Location: Veracruz, México

Post 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
User avatar
Marco A. Delgado
Posts: 126
Joined: Fri Oct 07, 2005 4:20 pm
Location: Veracruz, México

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Marco,

Prueba esto:

::oReBar := TReBar():New( ::oWndMain )
::oReBar:nHeight = 40
...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Marco A. Delgado
Posts: 126
Joined: Fri Oct 07, 2005 4:20 pm
Location: Veracruz, México

Post 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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Marco,

Prueba a modificar el dato nTop del browse:

oBrw:nTop = oReBar:nHeight + 1
regards, saludos

Antonio Linares
www.fivetechsoft.com
Frafive
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Post 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.
User avatar
Marco A. Delgado
Posts: 126
Joined: Fri Oct 07, 2005 4:20 pm
Location: Veracruz, México

Post 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.
User avatar
A&C
Posts: 214
Joined: Sat Aug 19, 2006 1:37 pm
Location: Chile

Post 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
Mi segundo amor es Programar
User avatar
Marco A. Delgado
Posts: 126
Joined: Fri Oct 07, 2005 4:20 pm
Location: Veracruz, México

Post 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.
User avatar
pedrog
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Re: Problema con ReBar

Post 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 )

 
Pedro
FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
User avatar
jll-fwh
Posts: 385
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia
Contact:

Re: Problema con ReBar

Post 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
Libreria: FWH/FWH1109 + Harbour 3.1.1 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA + OURXDBU -
S.O: XP / Win 7
Blog: http://javierlloris.blogspot.com.es/
e-mail: jllorispersonal@gmail.com
User avatar
pedrog
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Re: Problema con ReBar

Post 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!
Pedro
FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
User avatar
jll-fwh
Posts: 385
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia
Contact:

Re: Problema con ReBar

Post 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
Libreria: FWH/FWH1109 + Harbour 3.1.1 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA + OURXDBU -
S.O: XP / Win 7
Blog: http://javierlloris.blogspot.com.es/
e-mail: jllorispersonal@gmail.com
Post Reply