TTaskPanel collapsed como?

TTaskPanel collapsed como?

Postby leandro » Fri Mar 27, 2020 6: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: Select all  Expand view  RUN
  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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: TTaskPanel collapsed como?

Postby cnavarro » Fri Mar 27, 2020 7: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
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TTaskPanel collapsed como?

Postby Cgallegoa » Fri Mar 27, 2020 8: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: Select all  Expand view  RUN
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: Select all  Expand view  RUN
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-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: TTaskPanel collapsed como?

Postby Cgallegoa » Fri Mar 27, 2020 8: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: Select all  Expand view  RUN
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: Select all  Expand view  RUN
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-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: TTaskPanel collapsed como?

Postby EBM » Fri Mar 27, 2020 8: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
EBM
 
Posts: 147
Joined: Tue Oct 11, 2005 8:22 pm
Location: Guadalajara, Jal Mexico

Re: TTaskPanel collapsed como?

Postby leandro » 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:

Image

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 83 guests