Page 1 of 1

Desactivar el menu con look 2007

PostPosted: Sun Dec 07, 2008 12:04 am
by Pedro
Hola a todos
Seguro que digo una tonteria, pero, ¿cómo se desactivan los menus y la barra de menu para que no pueda el usuario abrir dos veces la misma ventana?
Antes con FW y Clipper, pasaba el Menu a los módulos, y lo desactivaba, pero ahora me da un error al ponerlo disable, como si el menu no estuviera en ese modulo. He intentado ponerlo STATIC, PUBLIC, MEMVAR, pero da igual, el error es el mismo.
Lo más probable es que ya lo hayais solucionado, pero me perdi la clase.
Un saludo
Pedro

Re: Desactivar el menu con look 2007

PostPosted: Sun Dec 07, 2008 3:23 pm
by FranciscoA
Pedro wrote:Hola a todos
Seguro que digo una tonteria, pero, ¿cómo se desactivan los menus y la barra de menu para que no pueda el usuario abrir dos veces la misma ventana?
Antes con FW y Clipper, pasaba el Menu a los módulos, y lo desactivaba, pero ahora me da un error al ponerlo disable, como si el menu no estuviera en ese modulo. He intentado ponerlo STATIC, PUBLIC, MEMVAR, pero da igual, el error es el mismo.
Lo más probable es que ya lo hayais solucionado, pero me perdi la clase.
Un saludo
Pedro



Espero que este pequeño ejemplo te pueda ayudar.

//----------------------------------------------------------------------------//
function BuildMenu()
local oMenu, oItem1,oItem2,oItem3
MENU oMenu
MENUITEM "&Fichero"
MENU
MENUITEM oItem1 PROMPT "Edicion &Orden y/o Factura" ACTION ( oItem1:Disable(),oItem2:Disable(),oMenu:Refresh(),MULTIEQ(oItem1,oItem2,oMenu) ) MESSAGE "Orden entrega de Equipos"

...
...


//-----------------------
Function MULTIEQ(oItem1,oItem2,oMenu)
local oWndCh, oLbx, oBar, cOldSele:=Select()

if !MsgNoYes("ESTA CORRECTA LA HORA Y FECHA DE SU ORDENADOR?","Por Favor confirme")
oItem1:Enable();oItem2:Enable();oMenu:Refresh()
return nil
endif

DEFINE WINDOW oWndCh MDICHILD OF oWnd
@ 0, 0 LISTBOX oLbx FIELDS OF oWndCh ;
FONT oWnd:oFont
DEFINE BUTTON OF oBar RESOURCE "EXIT" NOBORDER TOOLTIP "Salir" ACTION ( oWndCh:End())

oWndCh:SetControl(oLbx)
ACTIVATE WINDOW oWndCh ; //MAXIMIZED
VALID ( oItem1:Enable(),oItem2:Enable(),oMenu:Refresh(), .T.)
dbSelectArea(cOldSele)
RETURN NIL

saludos.

PostPosted: Tue Dec 09, 2008 6:29 pm
by Pedro
Hola Francisco

No era eso lo que yo necesitaba, pero me diste una buena idea y, solucioné el problema. Muchas gracias.

Un saludo
Pedro