I am playing with converting a huge console application to GUI one program at a time.
To do so, the console application uses the HB WVT pseudo console that calls HMG4 when needed and came back, all in the same EXE.
But to this to work, every time HMG4 is called the HMG4 environment must be resettled while backing to WVT.
To do this, I call this before returning:
Code: Select all
oWindow:s_qApp:quit()
oWindow:s_qApp := NIL
oWindow:s_qRes := NIL
oWindow:s_aResources := {}
oWindow:oDefaultParent := NIL
oWindow:nObjectCounter := 0
oWindow:oMainWindow := NIL
oWindow:lGridCellFlag := .F.
oWindow := NIL
Code: Select all
#include "hbclass.ch"
#include "common.ch"
/*----------------------------------------------------------------------*/
CLASS APPLICATION
CLASS VAR s_qApp INIT NIL SHARED
CLASS VAR s_qRes INIT NIL SHARED
CLASS VAR s_aResources INIT {} SHARED
CLASS VAR oDefaultParent INIT NIL SHARED
CLASS VAR nObjectCounter INIT 0 SHARED
CLASS VAR oMainWindow INIT NIL SHARED
CLASS VAR lGridCellFlag INIT .F. SHARED
METHOD New
ENDCLASS
/*----------------------------------------------------------------------*/
METHOD New() CLASS APPLICATION
RETURN Self
/*----------------------------------------------------------------------*/
FUNCTION HMG4_Reset()
LOCAL oApplication
oApplication := APPLICATION():New()
oApplication:s_qApp:quit()
oApplication:s_qApp := NIL
oApplication:s_qRes := NIL
oApplication:s_aResources := {}
oApplication:oDefaultParent := NIL
oApplication:nObjectCounter := 0
oApplication:oMainWindow := NIL
oApplication:lGridCellFlag := .F.
oApplication := NIL
RETURN NIL
Is this ok ?
Does anyone have a better idea ?