BUG EN TExplorerBar

BUG EN TExplorerBar

Postby compubrion » Thu Sep 20, 2012 7:15 pm

Saludos !

Antonio / Daniel Ejecunten este test y utilizen el scrrol para ir al final y despues contraen el ultimo panel vernan como el primer panel no se pinta correctamente

Se necesita la lib hbmisc para harbour / libmisc para xharbour

Code: Select all  Expand view  RUN


#include "fivewin.ch"
#include "Splitter.ch"
*--
Function Main()
*--
   
   LOCAL oWnd, oExpBar, oSpl
   LOCAL oPanel1, oPanel2, oPanel3, oPanel4
   LOCAL aMeses1 := AMONTHS()
   LOCAL aMeses2 := AMONTHS()
   LOCAL aMeses3 := AMONTHS()
   LOCAL aMeses4 := AMONTHS()
   LOCAL bClick := { | o | MsgInfo( o:GetText() ) }
   *--
   DEFINE WINDOW oWnd TITLE "FWH Class TExplorerBar"
   
   oWnd:SetSize( 350, 600 )

   oExpBar = TExplorerBar():New()
   *--
   oPanel1 = oExpBar:AddPanel( " Estadisticas de Compras "  )
   oPanel1:lSpecial:=.T.
   AEVAL( aMeses1, {|cMes| oPanel1:AddLink( cMes, bClick, "additem" ) } )
   *--
   oPanel2 = oExpBar:AddPanel( " Estadisticas de Ventas "  )
   AEVAL( aMeses2, {|cMes| oPanel2:AddLink( cMes, bClick, "additem" ) } )
   *--
   oPanel3 = oExpBar:AddPanel( " Estadisticas de Ventas "  )
   AEVAL( aMeses3, {|cMes| oPanel3:AddLink( cMes, bClick, "additem" ) } )
   
   oWnd:oClient = oExpBar
   ACTIVATE WINDOW oWnd Maximized
 
RETURN( NIL )

 


Fwh 12.04 / Borland 5.8 Harbour 3.2
Harbour / Bcc / MinGW / Fwh 13.9
User avatar
compubrion
 
Posts: 130
Joined: Thu Mar 08, 2007 6:12 pm
Location: Miranda - Venezuela

Re: BUG EN TExplorerBar

Postby MarioG » Fri Sep 21, 2012 9:21 pm

Hola;
quise probar el sample. Pero no tengo la funcion aMonths, en que lib esta?

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: BUG EN TExplorerBar

Postby Daniel Garcia-Gil » Sat Sep 22, 2012 2:36 am

Mario

compubrion wrote:Se necesita la lib hbmisc para harbour / libmisc para xharbour
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: BUG EN TExplorerBar

Postby MarioG » Sat Sep 22, 2012 1:52 pm

gracias!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: BUG EN TExplorerBar

Postby MarioG » Sat Sep 22, 2012 1:58 pm

Amigos;
Previamente al post de Daniel, probé haciendo:
aMeses1 := {"ENE", "FEB", "MAR","ABR","MAY","JUN","JUL","AGO","SEP","OCT","NOV","DIC"}
aMeses2 := ...

Y me sucedió que:
1) No responde al movimiento de la barra vertical mediante el scroll del mouse
2) Arrastro la barra hacia abajo, y pinta ok
3) Haco un click en la parte superior, de la barra de despl., en un lugar vacio; y el repintado es incoherente

O ser, no descubrí nada nuevo :) , es como lo informa "compubrion"
Uso FWH 12.04 - BCC582
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: BUG EN TExplorerBar

Postby compubrion » Sun Sep 23, 2012 3:30 pm

Saludos !

El BUG al que hago referencia, es en el repintado del panel, les muestro imagenes
Image

Deslizo la barra de scrool al final de la ventana ( hasta abajo ) como muestra la imagen

Image

Luego contraigo el ultimo panel, desaparece la barra de scrool, pero no repinta el panel como muestar la image

Image
Harbour / Bcc / MinGW / Fwh 13.9
User avatar
compubrion
 
Posts: 130
Joined: Thu Mar 08, 2007 6:12 pm
Location: Miranda - Venezuela

Re: BUG EN TExplorerBar

Postby Antonio Linares » Sun Sep 23, 2012 5:34 pm

Visto el error, estamos trabajando para solucionarlo, gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: BUG EN TExplorerBar

Postby Antonio Linares » Sun Sep 23, 2012 8:27 pm

Arreglado. El Metodo CheckSroll() queda así:

Code: Select all  Expand view  RUN
METHOD CheckScroll() CLASS TExplorerBar

   local nLastRow
   local oLastItem
   local nPos

   oLastItem = ATail( ::aPanels )
   
   nLastRow = ::nVirtualTop + oLastItem:nTop + oLastItem:nTotalHeight
   
   if nLastRow > ::nHeight - ::nVirtualTop
      ::nVirtualHeight = nLastRow
      SetScrollRangeX( ::hWnd, 1, 0, ::nVirtualHeight - 1 )

      ::oVScroll:SetPage( ::nHeight, .F. )
      ::oVScroll:SetPos( ::nVirtualTop )
      ::lSBVisible = .T.
   else
      ::nVirtualTop = 0
      ::nVirtualHeight = ::nHeight
      SetScrollRangeX( ::hWnd, 1, 0, 0 )
      ::lSBVisible = .F.
   endif
     
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: BUG EN TExplorerBar

Postby compubrion » Mon Sep 24, 2012 1:38 am

Gracias Antonio, por la pronta respuesta, se soluciona en parte.

Si usamos el mismo ejemplo que expongo y contraemos el segundo panel la barra de scroll desaparece y hace el repintado correctamente, pero si contraemos el ultimo panel no hace la misma operecaión. creo que aun falta afinarla un poco mas.


Saludos !

Cruz Alfredo Oses
Harbour / Bcc / MinGW / Fwh 13.9
User avatar
compubrion
 
Posts: 130
Joined: Thu Mar 08, 2007 6:12 pm
Location: Miranda - Venezuela

Re: BUG EN TExplorerBar

Postby Antonio Linares » Mon Sep 24, 2012 1:42 am

Cruz,

Este es el ejemplo que he probado. Por favor, pruébalo. Aqui parece funcionar bien:

Code: Select all  Expand view  RUN
#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oWnd, oExBar, oPanel1, oPanel2, oPanel3, oPanel4
   local bClick := { | o | MsgInfo( o:GetText() ) }
     
   DEFINE WINDOW oWnd TITLE "FWH Class TExplorerBar"
   
   oWnd:SetSize( 350, 600 )

   oExBar = TExplorerBar():New()

   oPanel1 = oExBar:AddPanel( "Uno" )
   oPanel1:lSpecial = .T.
   oPanel1:AddLink( "enero" )
   oPanel1:AddLink( "febrero" )
   oPanel1:AddLink( "marzo" )
   oPanel1:AddLink( "abril" )
   oPanel1:AddLink( "marzo" )
   oPanel1:AddLink( "abril" )
   oPanel1:AddLink( "mayo" )
   oPanel1:AddLink( "junio" )
   oPanel1:AddLink( "julio" )
   oPanel1:AddLink( "agosto" )
   oPanel1:AddLink( "septiembre" )
   oPanel1:AddLink( "octubre" )
   oPanel1:AddLink( "noviembre" )
   oPanel1:AddLink( "diciembre" )
     
   oPanel2 = oExBar:AddPanel( "Dos" )
   oPanel2:AddLink( "enero" )
   oPanel2:AddLink( "febrero" )
   oPanel2:AddLink( "marzo" )
   oPanel2:AddLink( "abril" )
   oPanel2:AddLink( "marzo" )
   oPanel2:AddLink( "abril" )
   oPanel2:AddLink( "mayo" )
   oPanel2:AddLink( "junio" )
   oPanel2:AddLink( "julio" )
   oPanel2:AddLink( "agosto" )
   oPanel2:AddLink( "septiembre" )
   oPanel2:AddLink( "octubre" )
   oPanel2:AddLink( "noviembre" )
   oPanel2:AddLink( "diciembre" )

   oPanel3 = oExBar:AddPanel( "Tres" )
   oPanel3:AddLink( "enero" )
   oPanel3:AddLink( "febrero" )
   oPanel3:AddLink( "marzo" )
   oPanel3:AddLink( "abril" )
   oPanel3:AddLink( "marzo" )
   oPanel3:AddLink( "abril" )
   oPanel3:AddLink( "mayo" )
   oPanel3:AddLink( "junio" )
   oPanel3:AddLink( "julio" )
   oPanel3:AddLink( "agosto" )
   oPanel3:AddLink( "septiembre" )
   oPanel3:AddLink( "octubre" )
   oPanel3:AddLink( "noviembre" )
   oPanel3:AddLink( "diciembre" )

   oWnd:oClient = oExBar

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: BUG EN TExplorerBar

Postby compubrion » Mon Sep 24, 2012 2:19 am

Antonio, te muestro las imagenes con tu ejemplo, fijate en la barra de scroll y los paneles activos, creo que alli esta el mal comportamiento de la clase

Image

Image

Image
Harbour / Bcc / MinGW / Fwh 13.9
User avatar
compubrion
 
Posts: 130
Joined: Thu Mar 08, 2007 6:12 pm
Location: Miranda - Venezuela

Re: BUG EN TExplorerBar

Postby Antonio Linares » Mon Sep 24, 2012 8:30 am

Faltaba comprobar si el último item estaba cerrado o abierto:

Code: Select all  Expand view  RUN
  nLastRow = ::nVirtualTop + oLastItem:nTop + ;
              If( ! oLastItem:lCollapsed, oLastItem:nTotalHeight,;
                  oLastItem:nTitleHeight )


El método queda asi:
Code: Select all  Expand view  RUN
METHOD CheckScroll() CLASS TExplorerBar

   local nLastRow
   local oLastItem
   local nPos

   oLastItem = ATail( ::aPanels )
   
   nLastRow = ::nVirtualTop + oLastItem:nTop + ;
              If( ! oLastItem:lCollapsed, oLastItem:nTotalHeight,;
                  oLastItem:nTitleHeight )
   
   if nLastRow > ::nHeight - ::nVirtualTop
      ::nVirtualHeight = nLastRow
      SetScrollRangeX( ::hWnd, 1, 0, ::nVirtualHeight - 1 )

      ::oVScroll:SetPage( ::nHeight, .F. )
      ::oVScroll:SetPos( ::nVirtualTop )
      ::lSBVisible = .T.
   else
      ::nVirtualTop = 0
      ::nVirtualHeight = ::nHeight
      SetScrollRangeX( ::hWnd, 1, 0, 0 )
      ::lSBVisible = .F.
   endif
     
return nil


gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: BUG EN TExplorerBar

Postby compubrion » Mon Sep 24, 2012 2:15 pm

Saludos !

Ahora si trabaja como debe ser

Gracias :D

Cruz Alfredo Oses
Harbour / Bcc / MinGW / Fwh 13.9
User avatar
compubrion
 
Posts: 130
Joined: Thu Mar 08, 2007 6:12 pm
Location: Miranda - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], Rick Lipkin and 59 guests