Page 1 of 1

Barra de menu

Posted: Tue Sep 23, 2008 7:56 am
by landaga
He creado una ventana hija dentro de la ventana principal de la aplicación pero la barra de menú de la hija no aparece hasta que paso el ratón por encima. En su lugar se ve el fondo de la ventana principal. Si ejecuto otros diálogos, al salir queda, en la barra de menú de la hija, una parte de ese dialogo hasta que vuelvo a pasar el ratón y parecen las opciones del menú. En FW no me sucedía... Alguien podria decirme como solucionarlo?
Gracias
Pedro

Posted: Tue Sep 23, 2008 2:48 pm
by daniel_halon
Coloca el código para que veamos como esta e asi poder ayudarte

Posted: Tue Sep 23, 2008 5:08 pm
by landaga
Este es el código, gracias:

#include 'winrom.inc' //Contiene los .ch necesarios

Static oWnd
STATIC oIco
Static MainWnd

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

Function MAIN()

Local oBar
LOCAL oCursorMano
LOCAL oBru
SetHandleCount(225)
SET DATE TO ITALIAN
SET RESOURCES TO 'GeroGest.DLL'
REQUEST HB_Lang_ES
HB_LANGSELECT ('ES')

DEFINE ICON oIco RESOURCE "PEOPLE"
DEFINE BRUSH oBru STYLE BORLAND
DEFINE WINDOW oWnd FROM 2, 10 TO 45, 115 ;
TITLE "GeroGest v.8.09" ;
COLOR 0;
MENU Menu() ;
BRUSH oBru ;
ICON oIco

DEFINE BUTTONBAR oBar 3D SIZE 35, 35 OF oWnd 2007

DEFINE BUTTON OF oBar RESOURCE "exit" ;
ACTION oWnd:End() ;
TOOLTIP 'Salir'

SET MESSAGE OF oWnd TO "Creado por Pedro Landa - (c) 00/2007/4915" ;
CENTERED CLOCK DATE KEYBOARD

ACTIVATE WINDOW oWnd MAXIMIZED on INIT Hija()

Return Nil

//..........................

Function Menu()

Local oMenu

MENU oMenu 2007
MENUITEM "&Residentes" ;
MESSAGE (O2A('Gestion de Residentes y Facturacion'))
MENU
MENUITEM (O2A("&Consulta de Residentes"))
MENU
MENUITEM (O2A("Actualizacion Residentes")) ;
ACTION Altas()
MENUITEM "Consultar Bajas" ;
ACTION Bajas()
ENDMENU
ENDMENU
ENDMENU
Set Echo Off
Set Talk Off
Return oMenu

//..........................

Function Hija()

Local oWndCh, oBruCh, oIcoCh, oBarCh

DEFINE ICON oIcoCh RESOURCE "CARPETAS"
DEFINE BRUSH oBruCh STYLE BRICKS
DEFINE WINDOW oWndCh OF oWnd ;
TITLE O2A('AlmaGest(c) v.8.9') FROM 10,10 TO 35,115 ;
MENU Menu1() ;
BRUSH oBruCh ;
ICON oIcoCh BORDER NONE NOICONIZE NOMAXIMIZE NOSYSMENU

DEFINE BUTTONBAR oBarCh 3D SIZE 40, 40 OF oWndCh 2007

DEFINE BUTTON OF oBarCh RESOURCE "exit" ;
ACTION oWnd:End() ;
TOOLTIP 'Salir'

ACTIVATE WINDOW oWndCh
RETURN NIL

//...........................

Function Menu1()

Local oMenu2

MENU oMenu2 2007
MENUITEM (O2A('Albaranes de Salida')) ;
MESSAGE (O2A('Alta Albaranes y Modificacio¢n de Lineas'))
MENU
MENUITEM 'Altas y Modificaciones';
ACTION Lineas()
MENUITEM 'Detalle de Albaranes con Importe' ;
ACTION ALBARAN()
Separator
MENUITEM "&Salir" ;
ACTION If( MsgYesNo( "Desea realmente salir ?","Abandonar AlmaGest"),;
oWnd:End(),) // Editado: antes ponia oWndCh:End()
ENDMENU
ENDMENU

Return oMenu2

Posted: Wed Sep 24, 2008 4:37 am
by joseluisysturiz
Disculpa mi ignorancia, estoy empezando con esto de ventanas familiares, madre e hija... no deberias haber colocado en la ventana hija... CHILD..? nose, pregunto, aun no hago pruebas, pero como lo he visto en otros ejemplos. espero sea aclarado para mi ayuda y de solucion al colega... :shock:

Posted: Wed Sep 24, 2008 7:38 am
by wmormar
landaga,

Code: Select all

DEFINE WINDOW oWnd FROM 2, 10 TO 45, 115 ; 
TITLE "GeroGest v.8.09" ; 
COLOR 0; 
MENU Menu() ; 
BRUSH oBru ; 
ICON oIco ;
MDI

ACTIVATE WINDOW oWnd MAXIMIZED on INIT Hija() 

// ventana hija
Function Hija() 

Local oWndCh, oBruCh, oIcoCh, oBarCh 

DEFINE ICON oIcoCh RESOURCE "CARPETAS" 
DEFINE BRUSH oBruCh STYLE BRICKS 
DEFINE WINDOW oWndCh OF oWnd ; 
TITLE O2A('AlmaGest(c) v.8.9') FROM 10,10 TO 35,115 ; 
BRUSH oBruCh ; 
ICON oIcoCh BORDER NONE NOICONIZE NOMAXIMIZE NOSYSMENU ;
MDICHILD

ACTIVATE WINDOW oWndCh 

RETURN NIL 
espero te sirva

Posted: Wed Sep 24, 2008 2:00 pm
by landaga
Lo compilo y te digo como funciona.
Muchas gracias

Posted: Wed Sep 24, 2008 2:13 pm
by landaga
William, al incluir los comandos MDI y MDICHILD lo que hace es anularme el menu de la ventana secundaria (son ventanas con barra de botones y barra de menu).

Vamos a seguir probando
Gracias

Posted: Wed Sep 24, 2008 4:04 pm
by landaga
Asi es como deberia verse siempre el menu de la ventana interior:
Image

Así es como se ve (o como no se ve) el menu antes de pasar el raton por encima:
Image

El hueco de la barra de menu esta pero parece transparente.

Posted: Wed Sep 24, 2008 6:13 pm
by Daniel Garcia-Gil
Espero ser util, lo que estas haciendo no es una ambiente MDI, si deseas hacerlo MDI aqui tienes este link para que veas como se puede poner un menu en una ventana MDICHILD, porque de la forma tradiconal no se puede, la barra de menu lo asumiria la ventana principal
http://forums.fivetechsoft.com/viewtopic.php?t=8317
landaga wrote: DEFINE ICON oIcoCh RESOURCE "CARPETAS"
DEFINE WINDOW oWndCh OF oWnd ;
TITLE O2A('AlmaGest(c) v.8.9') FROM 10,10 TO 35,115 ;
MENU Menu1() ;
BRUSH oBruCh ;
ICON oIcoCh BORDER NONE NOICONIZE NOMAXIMIZE NOSYSMENU
de lo contrario si quieres dejarlo tal cual esta lo que debes hacer es eliminar de la instruccin anterior el "OF oWnd" dejalo simplemente asi:

DEFINE WINDOW oWndCh ;
TITLE O2A('AlmaGest(c) v.8.9') FROM 10,10 TO 35,115 ;
MENU Menu1() ;
BRUSH oBruCh ;
ICON oIcoCh BORDER NONE NOICONIZE NOMAXIMIZE NOSYSMENU

y haces _ respectivos para cerrar las ventanas, etc...

Posted: Thu Sep 25, 2008 12:27 pm
by landaga
Gracias, probare cual de las diferentes opciones se ajusta mas a mis necesidades.

Posted: Thu Sep 25, 2008 7:46 pm
by Armando Picon
En la ventana madre necesitas especificar que es MDI y en la ventana hija debes especificar MDICHILD, si deseas utilizar esta modalidad.

Saludos

Armando