Me he encontrado con un comportamiento extraño que no consigo solucionar.
He confeccionado un pequeño ejemplo por si podeis probarlo.
Probad estos pasos:
1-Ejecutar la Demo
2-Seleccionar "OPTIONS" y "Windows 1"
3-Seleccionar "OPTIONS" y "Windows 2"
4-Pinchad en "OK"
5-Se muestra el contenido de la variable "cVar". No hay problema.
Ahora cerrad "Windows 1".
Volved a pinchar en "OK".
¡¡ La variable "cVar" ha desaparecido !!.
¿ Por que ?. No le encuentro sentido que al cerrar la primera ventana desaparezcan
las variables "Private" de la segunda, no tienen relacion la una con la otra.
No lo entiendo.
Esto no ocurre si las variables son "Local" o "Static" pero estas no puedo utilizarlas
ya que tiene que estas accesibles desde otros procedimientos.
Saludos y gracias por vuestra atencion.
Aqui el ejemplo:
Code: Select all
#include "hmg.ch"
Function Main
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 1000 HEIGHT 800 ;
MAIN
DEFINE MAIN MENU OF Form_1
POPUP "OPTIONS"
ITEM "Windows 1" ACTION Win1()
ITEM "Windows 2" ACTION Win2()
END POPUP
END MENU
END WINDOW
ACTIVATE WINDOW Form_1
Return
//**************
Function Win1()
DEFINE WINDOW Form_2 ;
AT 100,50 ;
WIDTH 300 HEIGHT 300
END WINDOW
ACTIVATE WINDOW Form_2
Return
//***************
Function Win2()
PRIVATE cVar:="HELLO WORLD"
DEFINE WINDOW Form_3 ;
AT 100,500 ;
WIDTH 300 HEIGHT 300
@ 10,10 BUTTON Button_1 OF Form_3 CAPTION "OK" ACTION msgdebug(cVar)
END WINDOW
ACTIVATE WINDOW Form_3
Return