ExploreBar y Expandir/Retraer Paneles
Posted: Sat Dec 23, 2017 9:42 pm
He aislado el código, a la mínima expresión, sin fuentes, imagenes fuera de 4 de fwh, y el resultado es el que comento...
Al iniciar la aplicación/ventana, se muestra la barra Scroll vertical, cuando los paneles están sin expandir y no deberia de mostrarse, pues caben perfectamente en la zona del ExplBar.
Es como si cogiera la altura de TODOS los paneles expandidos y por eso muestra la barra Scroll Vertical.
Si al iniciar la aplicación, se pincha en cualquier panel para expandirlo, luego desaparece la barra scroll, como si hiciera el refresh y recontara el espacio de alto que ocupa, para mostrar/ocultar la barra.
Eso es lo que deberia de hacer al iniciar la aplicación o al ocultar los paneles.
¿Como se puede hacer que cuando se haga ocultar el panel por código llame al evento recalcula/refresca altura para mostrar/ocultar la barra Scroll Vertical ???
No me vale hacer mas largo el ExplBar... pues luego habrian items/paneles escondidos debajo de la ventana, al ser más largo el ExplBar que la ventana.
Supongo que el error (mio) está al ocultar los paneles,... alguna cosa falta para que se recalcule el alto TOTAL de los panels+items visibles para que aparezca o no la barra Scroll Vertical.
Gracias.
Al iniciar la aplicación/ventana, se muestra la barra Scroll vertical, cuando los paneles están sin expandir y no deberia de mostrarse, pues caben perfectamente en la zona del ExplBar.
Es como si cogiera la altura de TODOS los paneles expandidos y por eso muestra la barra Scroll Vertical.
Si al iniciar la aplicación, se pincha en cualquier panel para expandirlo, luego desaparece la barra scroll, como si hiciera el refresh y recontara el espacio de alto que ocupa, para mostrar/ocultar la barra.
Eso es lo que deberia de hacer al iniciar la aplicación o al ocultar los paneles.
¿Como se puede hacer que cuando se haga ocultar el panel por código llame al evento recalcula/refresca altura para mostrar/ocultar la barra Scroll Vertical ???
Code: Select all
#include "FiveWin.ch"
function Main()
local oWnd, oExBar, oPanel1, oPanel2, oPanel3, oPanel4, oPanel5, oPanel6
local bClick := { | o | MsgInfo( o:GetText() ) }
Local nPanel, nItem
DEFINE WINDOW oWnd FROM 1, 1 TO 750, 1450 PIXEL TITLE "FWH Class TExplorerBar"
* oExBar = TExplorerBar():New() //Asi SI funciona y no aparece la barra Scroll, pero ocupa TODA la ventana
oExBar = TExplorerBar():New( 0, 0, 325, 700, oWnd )
oPanel1 = oExBar:AddPanel( "PANEL1" )
oPanel1:AddLink( "Primer item", bClick, "C:\FWH\bitmaps\16x16\additem.bmp" )
oPanel1:AddLink( "Segundo item", bClick, "C:\FWH\bitmaps\16x16\copy.bmp" )
oPanel1:AddLink( "Otro item", bClick, )
oPanel1:AddLink( "Otro más", bClick, )
oPanel1:AddLink( "Otro... y van 5", bClick, )
oPanel2 = oExBar:AddPanel( "PANEL 2" )
oPanel2:AddLink( "Primer item", bClick, "C:\FWH\bitmaps\16x16\additem.bmp" )
oPanel2:AddLink( "Segundo item", bClick, "C:\FWH\bitmaps\16x16\copy.bmp" )
oPanel2:AddLink( "Otro item", bClick, )
oPanel3 = oExBar:AddPanel( "PANEL 3" )
oPanel4 = oExBar:AddPanel( "PANEL 4" )
oPanel5 = oExBar:AddPanel( "PANEL 5" )
oPanel5 = oExBar:AddPanel( "PANEL 6" )
oExBar:Refresh()
// Oculto TODOS los paneles EXCEPTO el primero
WITH OBJECT oExBar
For nPanel := 2 to 6
:aPanels[nPanel]:nHeight = :aPanels[nPanel]:nTitleHeight
For nItem:=nPanel+1 To Len (:aPanels)
:aPanels[nItem]:nTop -= :aPanels[nPanel]:nBodyHeight
Next
:aPanels[nPanel]:lCollapsed := .T. // muda o icone de expandido para comprimido
Next
END WITH
oExBar:Refresh()
//Aparece la Barra Scroll Vertical, como si no tuviera en cuenta que los Paneles estan sin expandir
//Aunque fuerze a Refrescar el ExplBar después de ocultar paneles
ACTIVATE WINDOW oWnd CENTERED
return nil
Supongo que el error (mio) está al ocultar los paneles,... alguna cosa falta para que se recalcule el alto TOTAL de los panels+items visibles para que aparezca o no la barra Scroll Vertical.
Gracias.