Buenas tardes, queridos amigos del foro.
Tengo una consulta:
Tengo una ventana mdi con menú.
Por medio del menú abro diferentes ventanas child que hacen cosas diferentes.
¿Cómo puedo hacer para que cuando selecciono del menú una opción elegida previamente en lugar de abrir una nueva ventana child con lo mismo, ponga foco en la ventana correspondiente que ya está abierta?
¿Es posible hacer esto?
Gracias desde ya por vuestra atención.
Como evitar abrir 2 veces la misma ventana child
- jose_murugosa
- Posts: 1182
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Como evitar abrir 2 veces la misma ventana child
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
Re: Como evitar abrir 2 veces la misma ventana child
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
Re: Como evitar abrir 2 veces la misma ventana child
Hola Jose.
Yo lo que hago es que desabilito las opciones que abren la ventana, como normalmente lo tenemos en un menu y en un
boton de una barra.
En la funcion que llamo a la ventana hija ejemplo
las variables son estaticas y las tengo en el prg. principal
entonces dentro de la funcion las desabilito.
y compruebo que quedaran activas cuando cerrare la ventana ...
A mi me funciona bien.
Saludos.
Jose.
Yo lo que hago es que desabilito las opciones que abren la ventana, como normalmente lo tenemos en un menu y en un
boton de una barra.
En la funcion que llamo a la ventana hija ejemplo
Code: Select all | Expand
ObrasBrw( oMenuObr, oObra )
entonces dentro de la funcion las desabilito.
Code: Select all | Expand
oMenuObr:Disable()
oObra:Disable()
Code: Select all | Expand
ACTIVATE WINDOW OWndObr VALID ( oMenuObr:Enable(), oObra:Enable()....)
Saludos.
Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
- Willi Quintana
- Posts: 1023
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: Como evitar abrir 2 veces la misma ventana child
Mi estimado,,,
Antes de abrir la ventana declara un variable static. espero que captes la idea
Antes de abrir la ventana declara un variable static. espero que captes la idea
Code: Select all | Expand
static nNumWin := 0
lSalir := .f.
If nNumWin > 0
Return(Nil)
EndIf
DEFINE WINDOW oWndM MDI ...............
REDEFINE BTNBMP. oSalir ,,,,,,,,,,,,,, ACTION (lSalir := .t., oWndM:End())
ACTIVATE WINDOW ON INIT (nNumWin++) VALID lSalir
If lSalir
nNUmWin := 0
EndIf
Return(NIl)
- nageswaragunupudi
- Posts: 10691
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Como evitar abrir 2 veces la misma ventana child
Sample:
Code: Select all | Expand
#include "fivewin.ch"
function Main()
local oWnd, oBar
DEFINE WINDOW oWnd MDI
DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 2007
DEFINE BUTTON OF oBar PROMPT "Child-1" CENTER ACTION Child1()
DEFINE BUTTON OF oBar PROMPT "Child-2" CENTER ACTION Child2()
ACTIVATE WINDOW oWnd
return nil
function Child1()
static oWnd
if oWnd != nil
oWnd:Activate()
return nil
endif
DEFINE WINDOW oWnd MDICHILD OF WndMain() TITLE "CHILD-1"
oWnd:SetColor( 0, CLR_WHITE )
oWnd:bPainted := { || oWnd:SayText( "CHILD WINDOW-1" ) }
oWnd:bPostEnd := { || oWnd := nil }
ACTIVATE WINDOW oWnd
return nil
function Child2()
static oWnd
if oWnd != nil
oWnd:Activate()
return nil
endif
DEFINE WINDOW oWnd MDICHILD OF WndMain() TITLE "CHILD-2"
oWnd:SetColor( 0, CLR_WHITE )
oWnd:bPainted := { || oWnd:SayText( "CHILD WINDOW-2" ) }
oWnd:bPostEnd := { || oWnd := nil }
ACTIVATE WINDOW oWnd
return nil
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- jose_murugosa
- Posts: 1182
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Re: Como evitar abrir 2 veces la misma ventana child
Muchisimas gracias a todos por sus sugerencias y soluciones.
He logrado el objetivo gracias a Uds.
Es hermoso contar con este foro de amigos que tanto tiempo dedican a ayudarnos.
Muchiiiiiisiiiiimmmmmaaaaaas GRACIAS!!!!
He logrado el objetivo gracias a Uds.
Es hermoso contar con este foro de amigos que tanto tiempo dedican a ayudarnos.
Muchiiiiiisiiiiimmmmmaaaaaas GRACIAS!!!!
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"