Page 1 of 2

Bug TExplorerBar

Posted: Tue Oct 29, 2019 1:48 am
by leandro
Buenas noches para todos,

Estoy usando la clase TExplorerBar, pero en la parte en donde se dibuja el icono identificador del panel, se ve corrido el icono. Una
imagen dice mas que mil palabras.

Image

Code: Select all

   oExpPqr = TExplorerBar():New( 00, 00, 240, oWChPq:nHeight, oWChPq )
   oExpPqr:nTopColor := RGB( 215, 215, 215 )
   oExpPqr:nBottomColor := RGB( 215, 215, 215 )  
   
   oPanel1 = oExpPqr:AddPanel( "FACTURAS DE VENTA", ".\Res\pan32.png", , 30, 0, aGrad, , CLR_WHITE, CLR_WHITE )
   oPanel1:AddLink( "Agregar Fact. ", {|| manteFacturas(0) }, ".\Res\icon3.bmp" )
   oPanel1:AddLink( "Modificar Fact.", {|| manteFacturas() }, "#8202" )
   oPanel1:AddLink( "catalogos recupera.", {|| recuperacatalogos() }, "#8204" )
 

Re: Bug TExplorerBar

Posted: Tue Oct 29, 2019 9:24 am
by cnavarro
Prueba esto a ver si te ocurre lo mismo
https://bitbucket.org/fivetech/fivewin- ... estmdi.prg

Re: Bug TExplorerBar

Posted: Wed Oct 30, 2019 3:02 am
by leandro
Cristobal, muchísimas gracias por responder, como siempre muy amable.

Sucede exactamente lo mismo, se corre la imagen.

Image

Re: Bug TExplorerBar

Posted: Wed Oct 30, 2019 5:58 am
by cnavarro
Leandro, ya entiendo. No es un bug, es el comportamiento normal tal y como se diseñó la clase.
Prueba modificando la clase o haciendo otra que herede de TExplBar con un método Paint distinto
Ojo que no lo he probado, pero creo que tu problema son las coordenadas que se asignan en el metodo Paint al dibujar la imagen

Code: Select all

METHOD Paint() CLASS TExplorerBar

   .../...

          if ! Empty( hBmpPanel := ::aPanels[ n ]:hBmpPanel )
             if ::aPanels[ n ]:lHasAlpha
                ABPaint( ::hDC, ;
                 ::aPanels[ n ]:nLeft - ( nBmpWidth( hBmpPanel ) / 3 ),;    // quitar lo que se resta y probar
                 ::aPanels[ n ]:nTop - ( nBmpHeight( hBmpPanel ) / 3 ),;    // quitar lo que se resta y probar
                 hBmpPanel, 255 )
             else
                DrawTransparent( ::hDC, hBmpPanel, ::aPanels[ n ]:nTop - ( nBmpHeight( hBmpPanel ) / 3 ),;     // quitar lo que se resta y probar
                              ::aPanels[ n ]:nLeft - ( nBmpWidth( hBmpPanel ) / 3 ) )      // quitar lo que se resta y probar
            endif
          endif
      next
   endif

 

Re: Bug TExplorerBar

Posted: Wed Oct 30, 2019 1:38 pm
by leandro
Probando ando, y comento :D

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 3:33 pm
by leandro
Cristobal probando el cambio que sugeriste, sucedió lo siguiente:

Image

Code: Select all

   if ! Empty( ::aPanels )
      for n = 1 to Len( ::aPanels )
          if ! Empty( hBmpPanel := ::aPanels[ n ]:hBmpPanel )
             if ::aPanels[ n ]:lHasAlpha
                
                ABPaint( ::hDC, ;
                 ::aPanels[ n ]:nLeft ,;
                 ::aPanels[ n ]:nTop ,;
                 hBmpPanel, 255 )               
                
             else

                DrawTransparent( ::hDC, hBmpPanel, ::aPanels[ n ]:nTop ,;
                              ::aPanels[ n ]:nLeft  )            
            endif
          endif
      next
   endif
 

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 4:21 pm
by cnavarro
Leandro
Dime cuál es el problema ahora?, no veo bien la imagen

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 4:26 pm
by leandro
Cristobal...

La parte de la imagen que esta por fuera del panel no se ve.

Subi esta imagen, ampliada:

Image

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 8:07 pm
by cnavarro
Leandro, en el mismo prg, tienes también la clase TTaskPanel, con su correspondiente method Paint

Code: Select all


   if ::hBmpPanel != 0
      if ::lHasAlpha
      /*
         ABPaint( ::hDC, ;
          - nBmpWidth( ::hBmpPanel ) / 3,;
          - nBmpHeight( ::hBmpPanel ) / 3,;
          ::hBmpPanel, 255 )
      */
         ABPaint( ::hDC, 1, 1, ::hBmpPanel, 255 )

      else
      /*
         DrawTransparent( ::hDC, ::hBmpPanel,  - nBmpHeight( ::hBmpPanel ) / 3,;
                          - nBmpWidth( ::hBmpPanel ) / 3 )
      */
         DrawTransparent( ::hDC, ::hBmpPanel, 1, 1 )
      endif

   endif


 

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 9:01 pm
by leandro
Cristobal, ahora "duplica" la imagen.

Image

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 9:14 pm
by cnavarro
Lo has hecho en los dos metodos paint?
Yo acabo de probarlo y funciona correctamente

Re: Bug TExplorerBar

Posted: Tue Nov 12, 2019 11:48 pm
by leandro
Como vas?

No aun no funciona, ahora la imagen queda dentro del panel y montada sobre el titulo :cry:

Image

Re: Bug TExplorerBar

Posted: Wed Nov 13, 2019 12:12 am
by cnavarro
Puedes poner imágenes un poco más pequeñas ( es una buena opción )
Voy a mirar ahora la posición del título en este caso

Re: Bug TExplorerBar

Posted: Wed Nov 13, 2019 7:50 pm
by leandro
Cristobal buenas tardes de nuevo yo, pero según tu ultima respuesta parece que no hice bien la consulta, lo que quiero es que el icono quede bien alienado, no que este contenido en el panel. Si notas el icono de la izquierda no queda bien alineada la parte del icono que esta fuera del panel, con la parte del icono que esta dentro del panel. Con un poco de efectos especiales (paint jejeje), alinee la imagen para dejarlo como se debería ver.

(perdón por subir la imagen grande de nuevo, pero es para que se note el error)

Image

Re: Bug TExplorerBar

Posted: Wed Nov 13, 2019 8:48 pm
by cnavarro
Ah!, estás hablando entonces de un efecto estético al dibujar la imagen?
Enviame la imagen a mi mail o como consideres para probarla, porque no he notado nada con las que he utilizado yo ( o no me he fijado, que también puede ser :D )