FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TTaskPanel collapsed como?
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
TTaskPanel collapsed como?
Posted: Fri Mar 27, 2020 06:32 PM
Buenas tardes para todos, estoy usando la clase TExplorerBar, pero requiero que algunos de los paneles se muestren colapsados o contraídos, pero no encuentro la forma.

Lo intente así, pero no funciona.

Code (fw): Select all Collapse
   oPanel5 = oExpPqr:AddPanel( "SALIDA", ".\Res\salida.png",20 ,25, 0  )
   oPanel5:SetColor( RGB( 0, 0, 255 ), CLR_WHITE)
   oPanel5:AddLink( "Cerrar Ventana", {|| oWChPq:End() }, "#8606" )
   oPanel5:lCollapsed := .T.


De antemano gracias

LEANDRO AREVALO
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: TTaskPanel collapsed como?
Posted: Fri Mar 27, 2020 07:42 PM

Debería funcionar con lCollapsed := .T.
Prueba despues de definir todos tus panels, poniendo esto: oExplBar:CheckScroll()

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: TTaskPanel collapsed como?
Posted: Fri Mar 27, 2020 08:21 PM
Leandro, Cristobal

Parece que es un bug en la clase TTaskPanel

El proceso de expandir/contraer el panel se da en el Method LButtonUp

Code (fw): Select all Collapse
METHOD LButtonUp( nRow, nCol, nFlags ) CLASS TTaskPanel

   local n, hWndFocus

   if nRow < ::nTitleHeight

    // En la siguiente línea se produce el problema, pues no importa si le indicas lCollapsed .T. o .F., prevalecerá
    // el resultado de ::nHeight > ::nTitleHeight , ignorando el valor que le hayas dado a lCollapsed
      if ( ::lCollapsed := ::nHeight > ::nTitleHeight )   
         ::nHeight = ::nTitleHeight
         for n = ::nIndex  + 1 to Len( ::oWnd:aPanels )
            ::oWnd:aPanels[ n ]:nTop -= ::nBodyHeight
         next

        ....


Una solución temporal y a medio pelo, es que luego de crear el panel que quieres monstrar contraído escribas:

Code (fw): Select all Collapse
oPanel1:nHeight := oPanel1:nTitleHeight


De esta manera lo pondrá como quieres. El problema..... es que al expandirlo nuevamente no controla bien el alto total del objeto panel.

Te toca ir probando, pero creo que por ahi van los tiros, mientras los gurús de FW nos dan la pauta para una correcta solución.

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: TTaskPanel collapsed como?
Posted: Fri Mar 27, 2020 08:22 PM
Cgallegoa wrote:Leandro, Cristobal

Parece que es un bug en la clase TTaskPanel

El proceso de expandir/contraer el panel se da en el Method LButtonUp

Code (fw): Select all Collapse
METHOD LButtonUp( nRow, nCol, nFlags ) CLASS TTaskPanel

   local n, hWndFocus

   if nRow < ::nTitleHeight

    // En la siguiente línea se produce el problema, pues no importa si le indicas lCollapsed .T. o .F., prevalecerá
    // el resultado de ::nHeight > ::nTitleHeight , ignorando el valor que le hayas dado a lCollapsed
      if ( ::lCollapsed := ::nHeight > ::nTitleHeight )   
         ::nHeight = ::nTitleHeight
         for n = ::nIndex  + 1 to Len( ::oWnd:aPanels )
            ::oWnd:aPanels[ n ]:nTop -= ::nBodyHeight
         next

        ....


Una solución temporal y a medio pelo, es que luego de crear el panel que quieres mostrar contraído escribas:

Code (fw): Select all Collapse
oPanel1:nHeight := oPanel1:nTitleHeight


De esta manera lo pondrá como quieres. El problema..... es que al expandirlo nuevamente no controla bien el alto total del objeto panel.

Te toca ir probando, pero creo que por ahi van los tiros, mientras los gurús de FW nos dan la pauta para una correcta solución.

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 147
Joined: Tue Oct 11, 2005 08:22 PM
Re: TTaskPanel collapsed como?
Posted: Fri Mar 27, 2020 08:35 PM

Hola Leando,

Como bien dice Carlos, es un bug en la clase, yo lo he "medio solucionado" de la siguiente forma aunque a veces y dependiendo la resolucion del monitor
no me respeta bien el scroll vertical al expandir/contraer, pero de alguna forma me funciona de momento. Esto lo vi en algun post de otro colega que no recuerdo el nombre, sólo lo adapté a mis necesidades, espero te funcione.

Lo que hice fue agregarle un método a la clase ExplBar asi:

EXTEND CLASS TExplorerBar WITH METHOD Collapse

y despues en mi codigo, llamo al metodo asi:

oExplBar:Collapse( aPanel, 2 ) // <-- Estoy contrayendo el Panel 2
aPanel[ 2 ]:lCollapsed := .t.

Y aqui te paso el metodo:

STATIC FUNCTION Collapse( aPanel, nCual ) // Metodo de TExplorerBar
LOCAL Self := HB_QSelf(), c

aPanel[ nCual ]:nHeight := aPanel[ nCual ]:nTitleHeight

For c := nCual + 1 To Len( aPanel )
aPanel[ c ]:nTop -= aPanel[ nCual ]:nBodyHeight
Next

Self:Refresh()
Self:CheckScroll()

Return NIL

Saludos!

Eduardo Borondón Muñiz

Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: TTaskPanel collapsed como?
Posted: Fri Mar 27, 2020 10:37 PM
Gracias a todos por las respuestas.

Cristobal, coloque la linea de código de mencionaste, pero no ocurre nada que pueda notar.

Carlos de la manera que dices, obtengo el siguiente resultado:



Voy a intentar de la manera que dice eduardo y comento.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]

Continue the discussion