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.
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
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.
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
Re: Bug TExplorerBar
Posted: Tue Nov 12, 2019 3:33 pm
by leandro
Cristobal probando el cambio que sugeriste, sucedió lo siguiente:
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:
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.
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
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)
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
)