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.