Ocultar la ButtonBar

Post Reply
User avatar
Willi Quintana
Posts: 1025
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Ocultar la ButtonBar

Post by Willi Quintana »

Estimado, buenos dias

Para usar la mayor parte de la ventana principal de una aplicación, utilizo oBar:Hide() la cual oculta la Barra de botones, pero ese espacio desocupado, no permite que una ventana lo ocupe, es como un esdpacio fantasma. alguna sugerencia?


Code: Select all | Expand


DEFINE WINDOW oWnd MDI ;
       COLOR CLR_BLACK, CLR_HGRAY ;
       MENU (oMenu := BuildMenuPr(oCn, oBar ) );
       MENUINFO 1 ;
       ICON oIcon ; //        BRUSH oBrush ;
       TITLE "SIAE" + SPACE(20) + oApp:cRazSoc

       DEFINE BUTTONBAR oBar ;
              SIZE 90, 49 ; //  70, 50
              OF oWnd ;
              CURSOR oCursor 3DLOOK 2015

       DEFINE BUTTON oFacEl OF oBar;
              RESOURCE "FACT_EL" TOP NOBORDER GROUP;
              PROMPT "Ventas" ;
              TOOLTIP "Ventas y Facturación Electrónica" ;
              MESSAGE "Ventas y Facturación Electrónica" ;
              ACTION ( VentaElec(oWnd, oCn, oBar, oSalir) )
              oFacEl:nWidth := 140
 ....
..
..
Function VentaElec(oWnd, oCn, oBar, oSalir)
oBar:HIde()
...
..

       REDEFINE BTNBMP oSalVe ;
                RESOURCE "SALIR" LEFT ;
                PROMPT "Salir" ;
                ACTION (nNumWin--, oBar:GoTop(), oBar:Show(), oBar:Refresh(),( oWnd:bResized:={|| oSalir:Move(2,oWnd:nWidth()-110)} ), oWNd:Refresh(), oWndA:End()) ;
                ID 101 OF oDlg
                oSalVe:cToolTip := "Salir del Módulo"

..
..
..
.


 
User avatar
Antonio Linares
Site Admin
Posts: 42519
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Ocultar la ButtonBar

Post by Antonio Linares »

Estimado Willy,

Prueba con oWnd:oBar := nil y luego oWnd:Resize()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 1025
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Ocultar la ButtonBar

Post by Willi Quintana »

GRacias por contestar Antnio,
pero el area desocupara sigue poder ser utilizada...
User avatar
Antonio Linares
Site Admin
Posts: 42519
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Ocultar la ButtonBar

Post by Antonio Linares »

Prueba con oWnd:oWndClient:Resize()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 1025
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Ocultar la ButtonBar

Post by Willi Quintana »

GRacias Antonio,
Tampoco funciona...
:roll:
User avatar
Antonio Linares
Site Admin
Posts: 42519
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Ocultar la ButtonBar

Post by Antonio Linares »

Faltaria hacer oWnd:oTop := nil además de oWnd:oBar := nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 1025
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Ocultar la ButtonBar

Post by Willi Quintana »

Gracias Antonio, sigue lo mismo,,,,
User avatar
Antonio Linares
Site Admin
Posts: 42519
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Ocultar la ButtonBar

Post by Antonio Linares »

Querido Willy,

Probado y funcionando bien:

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   local oWnd, oBar

   DEFINE WINDOW oWnd MDI

   DEFINE BUTTONBAR oBar 3D OF oWnd

   DEFINE BUTTON OF oBar ACTION ( oBar:Hide(), oWnd:oBar := oWnd:oTop := nil,;
                                  oWnd:oWndClient:SetPos( 0, 0 ),;
                                  oWnd:oWndClient:SetSize( oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight + oBar:nHeight ) )

   ACTIVATE WINDOW oWnd

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 1025
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Ocultar la ButtonBar

Post by Willi Quintana »

Estimado Antonio, funciona correctamente, con algunas observaciones
-No es posible recuperar la barra de botones de manera correcta,,,
al retornar de la ventana "agrandada", requiero que la barra de botones se reactive, lo hago asi pero no ejecuta accion alguna:
Salu2

Code: Select all | Expand


oBar:GoTop(), oBar:Show(), oBar:Refresh(),( oWnd:bResized:={|| oSalir:Move(2,oWnd:nWidth()-110)} ), oWNd:Refresh()
 
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Ocultar la ButtonBar

Post by cmsoft »

Creo que hay algo que se activa en el resize
Prueba a ver si te da una pista (aunque esto hace un parpadeo horrible)

Code: Select all | Expand


#include "FiveWin.ch"
STATIC oWnd, oBar
function Main()

   DEFINE WINDOW oWnd MDI MENU HazMenu()

   DEFINE BUTTONBAR oBar 3D OF oWnd SIZE 60,60

   DEFINE BUTTON PROMPT "Sin Barra" OF oBar  ACTION ( oBar:Hide(), oWnd:oTop := nil,;
                                  oWnd:oWndClient:SetPos( 0, 0 ),;
                                  oWnd:oWndClient:SetSize( oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight + oBar:nHeight ) )

   ACTIVATE WINDOW oWnd Maximized

return nil

STATIC FUNCTION HazMenu()

   local oMenu

   MENU oMenu
      MENUITEM "&Mostrar Barra" ACTION ( oBar:Show(), oWnd:Normal(),oWnd:Maximize(),;                                  
                                  oWnd:oWndClient:SetSize( oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight - 60  ) )
   ENDMENU

return oMenu
 
User avatar
Antonio Linares
Site Admin
Posts: 42519
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 75 times
Contact:

Re: Ocultar la ButtonBar

Post by Antonio Linares »

Esta versión no parpadea, tan solo le falta que al ocultar la barra de botones, las ventanas hijas se redimensionasen:

Code: Select all | Expand


#include "FiveWin.ch"
STATIC oWnd, oBar
function Main()

   DEFINE WINDOW oWnd MDI MENU HazMenu()

   DEFINE BUTTONBAR oBar 3D OF oWnd SIZE 60,60

   DEFINE BUTTON PROMPT "Sin Barra" OF oBar  ACTION ( oBar:Hide(), oWnd:oTop := oWnd:oBar := nil,;
                                  oWnd:oWndClient:SetPos( 0, 0 ),;
                                  oWnd:oWndClient:SetSize( oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight + oBar:nHeight ),;
                                  oWnd:oWndClient:Refresh() )

   ACTIVATE WINDOW oWnd Maximized

return nil

STATIC FUNCTION HazMenu()

   local oMenu

   MENU oMenu
      MENUITEM "&Mostrar Barra" ACTION ( oWnd:oWndClient:SetPos( oBar:nTop, 0 ),;                                  
                                         oWnd:oWndClient:SetSize( oWnd:oWndClient:nWidth, oWnd:oWndClient:nHeight - oBar:nHeight() ),;
                                         oWnd:oTop := oWnd:oBar := oBar, oWnd:Resize(),;
                                         oBar:Show() )
      MENUITEM "New..." ACTION oWnd:ChildNew()                            
      oMenu:AddMdi()                            
   ENDMENU

return oMenu
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 1025
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Ocultar la ButtonBar

Post by Willi Quintana »

Antonio buenas noches,
Gracias, funciono perfecto, no requiero redimensionar ventanas, en ON INIT (oWndA:Move(0,0), se posiciona solo, esto me funciona para las pantallas pequeñas, gano un espacio de ésta manera.
todo quedo ok....
GRacias Antonio y a CmSoft
Post Reply