Enhancement: Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson)

This commit is contained in:
fdbozzo
2019-02-24 21:01:25 +01:00

View File

@@ -219,6 +219,7 @@
* 20/06/2018 FDBOZZO v1.19.51.2 Bug Fix: Cuando se exporta un DBF que pertenece a un DBC sin eventos, falla (Jairo Argüelles/Juan C.Perdomo) * 20/06/2018 FDBOZZO v1.19.51.2 Bug Fix: Cuando se exporta un DBF que pertenece a un DBC sin eventos, falla (Jairo Argüelles/Juan C.Perdomo)
* 09/07/2018 FDBOZZO v1.19.51.3 Bug Fix: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (KIRIDES) * 09/07/2018 FDBOZZO v1.19.51.3 Bug Fix: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (KIRIDES)
* 10/07/2018 FDBOZZO v1.19.51.4 Bug Fix: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Jochen Kauz) * 10/07/2018 FDBOZZO v1.19.51.4 Bug Fix: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Jochen Kauz)
* 14/02/2019 TRACY_P v1.19.51.5 Enhancement: Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson)
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES> * </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -2888,6 +2889,7 @@ DEFINE CLASS c_foxbin2prg AS Session
lcInputFile_Type = '' lcInputFile_Type = ''
.l_Error = .F. .l_Error = .F.
tcType = UPPER( EVL(tcType,'') ) tcType = UPPER( EVL(tcType,'') )
llEscKeyRestored = .T.
.declareDLL() .declareDLL()
IF THIS.l_CancelWithEscKey THEN IF THIS.l_CancelWithEscKey THEN
@@ -2895,6 +2897,7 @@ DEFINE CLASS c_foxbin2prg AS Session
lcOldOnEscape = ON("Escape") lcOldOnEscape = ON("Escape")
ON ESCAPE ERROR 1799 ON ESCAPE ERROR 1799
SET ESCAPE ON SET ESCAPE ON
llEscKeyRestored = .F.
ENDIF ENDIF
DO CASE DO CASE
@@ -3441,7 +3444,7 @@ DEFINE CLASS c_foxbin2prg AS Session
ENDWITH && THIS ENDWITH && THIS
CATCH TO toEx CATCH TO toEx
IF THIS.l_CancelWithEscKey THEN IF NOT llEscKeyRestored AND THIS.l_CancelWithEscKey THEN
IF EMPTY(lcOldOnEscape) IF EMPTY(lcOldOnEscape)
ON ESCAPE ON ESCAPE
ELSE ELSE
@@ -3504,6 +3507,7 @@ DEFINE CLASS c_foxbin2prg AS Session
ELSE ELSE
SET ESCAPE &lcOldSetEscape. SET ESCAPE &lcOldSetEscape.
ENDIF ENDIF
llEscKeyRestored = .T.
ENDIF ENDIF
IF VARTYPE(loLang) <> 'O' THEN IF VARTYPE(loLang) <> 'O' THEN
@@ -6497,8 +6501,8 @@ DEFINE CLASS c_conversor_base AS Custom
CASE NOT lcWord == 'TEXT' CASE NOT lcWord == 'TEXT'
EXIT EXIT
*CASE UPPER( LEFT( CHRTRAN( lcLine, ' ', '' ), 5 ) ) == 'TEXT=' *CASE UPPER( LEFT( CHRTRAN( lcLine, ' ', '' ), 5 ) ) == 'TEXT='
* EXIT * EXIT
CASE lnWordCount >= 2 CASE lnWordCount >= 2
IF lcWord2 == "TO" IF lcWord2 == "TO"
* OK, es TEXT TO... * OK, es TEXT TO...
@@ -7575,8 +7579,8 @@ DEFINE CLASS c_conversor_base AS Custom
* VER: https://github.com/fdbozzo/foxbin2prg/issues/28 * VER: https://github.com/fdbozzo/foxbin2prg/issues/28
* *
* PASO 1: Obtener los nombres únicos y asignarles un código de orden * PASO 1: Obtener los nombres únicos y asignarles un código de orden
CREATE CURSOR C_OBJ (objName C(50), iOrder I AUTOINC) CREATE CURSOR C_OBJ (OBJNAME C(50), IORDER I AUTOINC)
INDEX ON objname TAG objname INDEX ON OBJNAME TAG OBJNAME
* PASO 2: Configurar las prioridades de ordenamiento (primero props, luego objs) * PASO 2: Configurar las prioridades de ordenamiento (primero props, luego objs)
FOR I = 1 TO m.tnPropsAndValues_Count FOR I = 1 TO m.tnPropsAndValues_Count
@@ -7586,24 +7590,24 @@ DEFINE CLASS c_conversor_base AS Custom
lcObjName = GETWORDNUM(laPropsAndValues(m.I,1), 1, '.') lcObjName = GETWORDNUM(laPropsAndValues(m.I,1), 1, '.')
IF NOT SEEK(LOWER(lcObjName), "C_OBJ") IF NOT SEEK(LOWER(lcObjName), "C_OBJ")
INSERT INTO C_OBJ (objName) VALUES (LOWER(lcObjName)) INSERT INTO C_OBJ (OBJNAME) VALUES (LOWER(lcObjName))
ENDIF ENDIF
laPropsAndValues(m.I,1) = 'B' + PADL(C_OBJ.iOrder,3,'0') ; laPropsAndValues(m.I,1) = 'B' + PADL(C_OBJ.IORDER,3,'0') ;
+ JUSTSTEM(laPropsAndValues(m.I,1)) + '.' ; + JUSTSTEM(laPropsAndValues(m.I,1)) + '.' ;
+ .sortPropsAndValues_SetAndGetSCXPropNames( 'SETNAME', JUSTEXT(laPropsAndValues(m.I,1)) ) + .sortPropsAndValues_SetAndGetSCXPropNames( 'SETNAME', JUSTEXT(laPropsAndValues(m.I,1)) )
*laPropsAndValues(m.I,1) = 'B000' + lcObjName + '.' ; *laPropsAndValues(m.I,1) = 'B000' + lcObjName + '.' ;
+ .sortPropsAndValues_SetAndGetSCXPropNames( 'SETNAME', JUSTEXT(laPropsAndValues(m.I,1)) ) + .sortPropsAndValues_SetAndGetSCXPropNames( 'SETNAME', JUSTEXT(laPropsAndValues(m.I,1)) )
ELSE ELSE
* Genera obj+props para TX2 * Genera obj+props para TX2
lcObjName = GETWORDNUM(laPropsAndValues(m.I,1), 1, '.') lcObjName = GETWORDNUM(laPropsAndValues(m.I,1), 1, '.')
IF NOT SEEK(LOWER(lcObjName), "C_OBJ") IF NOT SEEK(LOWER(lcObjName), "C_OBJ")
INSERT INTO C_OBJ (objName) VALUES (LOWER(lcObjName)) INSERT INTO C_OBJ (OBJNAME) VALUES (LOWER(lcObjName))
ENDIF ENDIF
laPropsAndValues(m.I,1) = 'B' + PADL(C_OBJ.iOrder,3,'0') ; laPropsAndValues(m.I,1) = 'B' + PADL(C_OBJ.IORDER,3,'0') ;
+ JUSTSTEM(laPropsAndValues(m.I,1)) + '.' ; + JUSTSTEM(laPropsAndValues(m.I,1)) + '.' ;
+ JUSTEXT(laPropsAndValues(m.I,1)) + JUSTEXT(laPropsAndValues(m.I,1))
@@ -22701,7 +22705,7 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE
*LG lnView_Count = ADBOBJECTS( laViews, "VIEW" ) *LG lnView_Count = ADBOBJECTS( laViews, "VIEW" )
SELECT CAST(ALLTRIM(ObjectName) as varchar(128)) ; SELECT CAST(ALLTRIM(ObjectName) as varchar(128)) ;
FROM TablaBin ; FROM TABLABIN ;
WHERE UPPER(ObjectType) = 'VIEW' ; WHERE UPPER(ObjectType) = 'VIEW' ;
ORDER BY 1 ; ORDER BY 1 ;
INTO ARRAY laViews INTO ARRAY laViews