FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como Deshabilitar y habilitar cada m贸dulo del men煤
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Fri Jan 12, 2007 07:13 PM

Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Altas:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo m贸dulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada :(, les agradecere su ayuda inmediata gracias
Adriano C. C.

acc69@hotmail.com

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Fri Jan 12, 2007 07:24 PM

usando el comando WHEN( lCondicion )

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Re: Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Fri Jan 12, 2007 09:30 PM
Utiliza la variable cargo que tienen los objetos Ventanas. Ejemplo

if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo est谩 vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija

*/

oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras

ACTIVATE WINDOW oWndVta

oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.

oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN

Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "ca帽ones y palurdos"

ACC69 wrote:Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo m贸dulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada :-), les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicaci贸n via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Re: Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Fri Jan 12, 2007 10:05 PM
Armando Picon wrote:Utiliza la variable cargo que tienen los objetos Ventanas. Ejemplo

if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo est谩 vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija

*/

oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras

ACTIVATE WINDOW oWndVta

oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.

oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN

Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "ca帽ones y palurdos"

ACC69 wrote:Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo m贸dulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada :-), les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com


El chiste es abrir el modulo y deshabilitar mientras que el usuario haga ciertos procesos y al terminar y cerrar el modulo, que se habilite regresando al menu, porque muchas veces el usuario se le olvida que tiene minimizado x modulo y sin darse cuenta, vuelve abrir mismo modulo, porque es una ventana MDIChld
Esto es un ejemplo de poner disable al seleccionar el modulo

MENU
MENUITEM oItem[07] Prompt "&Referencias y proveedores" ACTION AccModul(BUSCAR1(),oItem[07]) ;
MESSAGE "B煤squeda de referencias"
ENDMENU


Y esta la rutina de deshabilitar x modulo del menu
//------------------------------------------------------------------------------
FUNCTION AccModul(bFunction,oItem)
oItem:Disable()
return nil

Ahora como logro habilitar nuevamente, cuando el usuario termine de usar el modulo .
Les agradecere su ayuda gracias
Adriano
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Fri Jan 12, 2007 10:11 PM
ACC69

Prueba con esto

MENUITEM "&Ingresar"  	ACTION (FormaPago( oMenuItem )) RESOURCE "BTNARTICU"


function FormaPago( oMenuItem )

oMenuItem:Disabled()

  bla...ble
  bla.. bla..
  etc..

oMenuItem:Enabled()

return nil



Espero que te sirva

Saludos
Patricio
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Re: Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Sat Jan 13, 2007 12:00 AM
No te preocupes que quede habilitado... Cuando el usuario vuelve a querer entrar en el modulo, como la ventana ya tiene x:cargo con contenido solamente se reactiva porque ya est谩 activado. Como te tije esta rutina la utilizo y me ha funcionado aunque el usuario sea un palurdo.

ACC69 wrote:
Armando Picon wrote:Utiliza la variable cargo que tienen los objetos Ventanas. Ejemplo

if ASCAN( oWndMain:oWndClient:aWnd, {|x| x:cargo == "VENTAS"} ) == 0 // comparas si ya existe x:cargo devuelve cero
// si es cero significa que x:cargo est谩 vacio y por eso entra en esta rama
/*
Aqui viene tu codigo para trabajar la ventana hija

*/

oWndVta:cargo := "VENTAS" // se asigna por primera vez x:cargo con lo que quieras

ACTIVATE WINDOW oWndVta

oFont:end()
oFont2:end()
DBSELECTAREA("Stock")
*
ELSE // como ya x:cargo tiene valor solo reactiva la ventana y no se vuelve a cargar nuevamente.

oWndVta:SetFocus()
oWndVta:restore()
oWndVta:refresh()
ENDIF
RETURN

Espero te sirva como plantilla. Hay otras soluciones pero esta es a prueba de "ca帽ones y palurdos"

ACC69 wrote:Hola amigos del foro, como deshabilitar cada modulo usando ejemplo: oMenu:Disable() y volver habilitar nuevamente, estoy usando ventanas hijas y que el usuario no pueda volver abrir el mismo m贸dulo nuevamente, o si alguien tiene alguna rutina que me pueda ayudar o un ejemplo de codigo ? en mi programa lo deshabilita, pero no logro habilitar nuevamente ya intente de varias formas y nada :-), les agradecere su ayuda inmediata gracias
Adriano C. C.
acc69@hotmail.com


El chiste es abrir el modulo y deshabilitar mientras que el usuario haga ciertos procesos y al terminar y cerrar el modulo, que se habilite regresando al menu, porque muchas veces el usuario se le olvida que tiene minimizado x modulo y sin darse cuenta, vuelve abrir mismo modulo, porque es una ventana MDIChld
Esto es un ejemplo de poner disable al seleccionar el modulo

MENU
MENUITEM oItem[07] Prompt "&Referencias y proveedores" ACTION AccModul(BUSCAR1(),oItem[07]) ;
MESSAGE "B煤squeda de referencias"
ENDMENU


Y esta la rutina de deshabilitar x modulo del menu
//------------------------------------------------------------------------------
FUNCTION AccModul(bFunction,oItem)
oItem:Disable()
return nil

Ahora como logro habilitar nuevamente, cuando el usuario termine de usar el modulo .
Les agradecere su ayuda gracias
Adriano
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicaci贸n via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Sat Jan 13, 2007 01:06 AM
Como siempre amigos, estan matando pulgas a ca帽onazos, la solucion es mas facil:


Function VentanaHija
STATIC oWnd := NIL

IF oWnd == NIL
   Define Window oWnd.... bla bla bla MDICHILD OF ....
   ... bla
   ... bla
   ... bla
   ACTIVATE WINDOW ..... bla bla bla .... [b]VALID (oWnd:= NIL)[/b] // esta es la importante
ELSE
   oWnd:SetFocus()
   oWnd:restore()
ENDIF
Saludos

R.F.
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Como Deshabilitar y habilitar cada m贸dulo del men煤
Posted: Sat Jan 13, 2007 05:32 AM

Bueno... por ah铆 va la cosa. Al final el usuario no se va ha enterar si se ha utilizado un misil para matar la paloma!!!

FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicaci贸n via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Gracias amigos del foro
Posted: Mon Jan 15, 2007 03:22 PM
Armando Picon wrote:Bueno... por ah铆 va la cosa. Al final el usuario no se va ha enterar si se ha utilizado un misil para matar la paloma!!!


Gracias amigos del foro por la ayuda y sugerencias, problema resuelto, ya el usuario no podra abrir nuevamente mismo menu, estando deshabilitado...
Gracias se los agradezco
Adriano C. C.

Continue the discussion