Changeset: 398 fdbozzo - 08/08/2014 16:16:51:

- Arreglo bug orden de métodos
This commit is contained in:
fdbozzo
2014-08-09 14:39:32 +02:00
parent b474a27803
commit 965926e135
3 changed files with 253 additions and 70 deletions

View File

@@ -3486,7 +3486,7 @@ DEFINE CLASS f_combobox AS f_base OF "lib_controles.vcx"
WhatsThisHelpID = -1, ; WhatsThisHelpID = -1, ;
Width = 200 Width = 200
*< END OBJECT: BaseClass="combobox" /> *< END OBJECT: BaseClass="combobox" />
PROCEDURE Cl_ComboDropdown1.Init PROCEDURE Cl_ComboDropdown1.Init
this.AddListItem('Este es el valor.A1') this.AddListItem('Este es el valor.A1')
this.AddListItem('Este es el valor.A2', this.NewItemId, 2) this.AddListItem('Este es el valor.A2', this.NewItemId, 2)
@@ -13870,7 +13870,7 @@ DEFINE CLASS f_listbox AS f_base OF "lib_controles.vcx"
WhatsThisHelpID = -1, ; WhatsThisHelpID = -1, ;
Width = 224 Width = 224
*< END OBJECT: BaseClass="listbox" /> *< END OBJECT: BaseClass="listbox" />
PROCEDURE Cl_ListBox1.Init PROCEDURE Cl_ListBox1.Init
this.AddListItem('Este es el valor.A1') this.AddListItem('Este es el valor.A1')
this.AddListItem('Este es el valor.A2', this.NewItemId, 2) this.AddListItem('Este es el valor.A2', this.NewItemId, 2)

View File

@@ -148,6 +148,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
loObj.get_PropsFrom_PROTECTED( toReg_Esperado.PROTECTED, .F., @laProtected_Esperado, @lnProtected_Count_Esperado, '' ) loObj.get_PropsFrom_PROTECTED( toReg_Esperado.PROTECTED, .F., @laProtected_Esperado, @lnProtected_Count_Esperado, '' )
*-- Methods *-- Methods
STORE 0 TO lnMethods_Count, lnMethods_Count_Esperado
loObj.get_ADD_OBJECT_METHODS( toReg, toReg, '', @laMethods, '', @lnMethods_Count, '', 0, '', 0, loFoxBin2Prg ) loObj.get_ADD_OBJECT_METHODS( toReg, toReg, '', @laMethods, '', @lnMethods_Count, '', 0, '', 0, loFoxBin2Prg )
loObj.get_ADD_OBJECT_METHODS( toReg_Esperado, toReg_Esperado, '', @laMethods_Esperado, '', @lnMethods_Count_Esperado, '', 0, '', 0, loFoxBin2Prg ) loObj.get_ADD_OBJECT_METHODS( toReg_Esperado, toReg_Esperado, '', @laMethods_Esperado, '', @lnMethods_Count_Esperado, '', 0, '', 0, loFoxBin2Prg )
lcExtraData = tcParent + '.' + tcObjName + ' (' + tcClass + ')' lcExtraData = tcParent + '.' + tcObjName + ' (' + tcClass + ')'
@@ -256,7 +257,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.assertequals( lnMethods_Count_Esperado, lnMethods_Count, "Cantidad de METHODS para " + lcExtraData ) THIS.assertequals( lnMethods_Count_Esperado, lnMethods_Count, "Cantidad de METHODS para " + lcExtraData )
FOR I = 1 TO lnMethods_Count_Esperado FOR I = 1 TO lnMethods_Count_Esperado
THIS.asserttrue( ASCAN( laMethods, laMethods_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ; THIS.asserttrue( ASCAN( laMethods, laMethods_Esperado(I,1), 1, -1, 1, 1+2+4) > 0 ;
, ' Comprobaci<63>n de que existe el Method "' + TRANSFORM(laMethods_Esperado(I,1)) + '"' + " para " + lcExtraData ) , ' Comprobaci<63>n de que existe el Method "' + TRANSFORM(laMethods_Esperado(I,1)) + '"' + " para " + lcExtraData )
ENDFOR ENDFOR

View File

@@ -8170,12 +8170,14 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
+ [<memberdata name="convertir" display="Convertir"/>] ; + [<memberdata name="convertir" display="Convertir"/>] ;
+ [<memberdata name="exception2str" display="Exception2Str"/>] ; + [<memberdata name="exception2str" display="Exception2Str"/>] ;
+ [<memberdata name="get_add_object_methods" display="get_ADD_OBJECT_METHODS"/>] ; + [<memberdata name="get_add_object_methods" display="get_ADD_OBJECT_METHODS"/>] ;
+ [<memberdata name="get_class_methods" display="get_CLASS_METHODS"/>] ;
+ [<memberdata name="get_nombresobjetosolepublic" display="get_NombresObjetosOLEPublic"/>] ; + [<memberdata name="get_nombresobjetosolepublic" display="get_NombresObjetosOLEPublic"/>] ;
+ [<memberdata name="get_propsfrom_protected" display="get_PropsFrom_PROTECTED"/>] ; + [<memberdata name="get_propsfrom_protected" display="get_PropsFrom_PROTECTED"/>] ;
+ [<memberdata name="get_propsandcommentsfrom_reserved3" display="get_PropsAndCommentsFrom_RESERVED3"/>] ; + [<memberdata name="get_propsandcommentsfrom_reserved3" display="get_PropsAndCommentsFrom_RESERVED3"/>] ;
+ [<memberdata name="get_propsandvaluesfrom_properties" display="get_PropsAndValuesFrom_PROPERTIES"/>] ; + [<memberdata name="get_propsandvaluesfrom_properties" display="get_PropsAndValuesFrom_PROPERTIES"/>] ;
+ [<memberdata name="indentarmemo" display="IndentarMemo"/>] ; + [<memberdata name="indentarmemo" display="IndentarMemo"/>] ;
+ [<memberdata name="memoinoneline" display="MemoInOneLine"/>] ; + [<memberdata name="memoinoneline" display="MemoInOneLine"/>] ;
+ [<memberdata name="method2array" display="Method2Array"/>] ;
+ [<memberdata name="normalizarasignacion" display="normalizarAsignacion"/>] ; + [<memberdata name="normalizarasignacion" display="normalizarAsignacion"/>] ;
+ [<memberdata name="set_multilinememowithaddobjectproperties" display="set_MultilineMemoWithAddObjectProperties"/>] ; + [<memberdata name="set_multilinememowithaddobjectproperties" display="set_MultilineMemoWithAddObjectProperties"/>] ;
+ [<memberdata name="sortmethod" display="SortMethod"/>] ; + [<memberdata name="sortmethod" display="SortMethod"/>] ;
@@ -8239,17 +8241,18 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
#ENDIF #ENDIF
TRY TRY
LOCAL lcMethodName LOCAL lcMethodName, lnMethodCount
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
.SortMethod( toRegObj.METHODS, @taMethods, @taCode, '', @tnMethodCount ; lnMethodCount = tnMethodCount
.Method2Array( toRegObj.METHODS, @taMethods, @taCode, '', @tnMethodCount ;
, @taPropsAndComments, tnPropsAndComments_Count, @taProtected, tnProtected_Count, @toFoxBin2Prg ) , @taPropsAndComments, tnPropsAndComments_Count, @taProtected, tnProtected_Count, @toFoxBin2Prg )
*-- Ubico los m<>todos protegidos y les cambio la definici<63>n. *-- Ubico los m<>todos protegidos y les cambio la definici<63>n.
*-- Los m<>todos se deben generar con la ruta completa, porque si no es imposible saber a que objeto corresponden, *-- Los m<>todos se deben generar con la ruta completa, porque si no es imposible saber a que objeto corresponden,
*-- o si son de la clase. *-- o si son de la clase.
IF tnMethodCount > 0 THEN IF tnMethodCount - lnMethodCount > 0 THEN
FOR I = 1 TO tnMethodCount FOR I = lnMethodCount + 1 TO tnMethodCount
IF taMethods(I,2) = 0 IF taMethods(I,2) = 0
LOOP LOOP
ENDIF ENDIF
@@ -8272,9 +8275,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- Genero el m<>todo SIN indentar, ya que se hace luego *-- Genero el m<>todo SIN indentar, ya que se hace luego
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso *-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + lcMethodName *tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + lcMethodName
tcMethods = tcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) ) *tcMethods = tcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) )
tcMethods = tcMethods + CR_LF + 'ENDPROC' *tcMethods = tcMethods + CR_LF + 'ENDPROC'
taCode(taMethods(I,2)) = 'PROCEDURE ' + lcMethodName + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) ) + CR_LF + 'ENDPROC'
taMethods(I,1) = lcMethodName
ENDFOR ENDFOR
ENDIF ENDIF
ENDWITH && THIS ENDWITH && THIS
@@ -8291,6 +8296,93 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDPROC ENDPROC
*******************************************************************************************************************
PROCEDURE get_CLASS_METHODS
LPARAMETERS tnMethodCount, taMethods, taCode, taProtected, taPropsAndComments
*-- DEFINIR M<>TODOS DE LA CLASE
*-- Ubico los m<>todos protegidos y les cambio la definici<63>n
EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments
TRY
LOCAL lcMethod, lcMethodName, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods, lnLen
STORE '' TO lcMethod, lcMethodName, lcProcDef, lcMethods
IF tnMethodCount > 0 THEN
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
FOR I = 1 TO tnMethodCount
lcMethodName = CHRTRAN( taMethods(I,1), '^', '' )
lnProtectedItem = ASCAN( taProtected, taMethods(I,1), 1, 0, 0, 1+2+4)
IF lnProtectedItem = 0
lnProtectedItem = ASCAN( taProtected, taMethods(I,1) + '^', 1, 0, 0, 1+2+4)
IF lnProtectedItem = 0
*-- M<>todo com<6F>n
lcProcDef = 'PROCEDURE'
ELSE
*-- M<>todo oculto
lcProcDef = 'HIDDEN PROCEDURE'
ENDIF
ELSE
*-- M<>todo protegido
lcProcDef = 'PROTECTED PROCEDURE'
ENDIF
lnCommentRow = ASCAN( taPropsAndComments, '*' + lcMethodName, 1, 0, 1, 1+2+4+8)
*-- Nombre del m<>todo
*TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
* <<>> <<lcProcDef>> <<taMethods(I,1)>>
*ENDTEXT
*lcMethods = lcMethods + CR_LF + lcProcDef + ' ' + taMethods(I,1)
lcMethod = lcProcDef + ' ' + taMethods(I,1)
*-- Comentarios del m<>todo (si tiene)
IF lnCommentRow > 0 AND NOT EMPTY(taPropsAndComments(lnCommentRow,2))
*TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
* <<>> && <<taPropsAndComments(lnCommentRow,2)>>
*ENDTEXT
*lcMethods = lcMethods + C_TAB + C_TAB + taPropsAndComments(lnCommentRow,2)
lcMethod = lcMethod + C_TAB + C_TAB + '&' + '& ' + taPropsAndComments(lnCommentRow,2)
ENDIF
*-- C<>digo del m<>todo
IF taMethods(I,2) > 0 THEN
*lcMethods = lcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), C_TAB + C_TAB )
*lcMethod = lcMethod + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), C_TAB + C_TAB )
taCode(taMethods(I,2)) = lcMethod + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) ) + CR_LF + 'ENDPROC'
ELSE
lnLen = ALEN(taCode,1) + 1
DIMENSION taCode( lnLen )
taCode( lnLen ) = lcMethod + CR_LF + 'ENDPROC'
taMethods(I,2) = lnLen
ENDIF
*lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC'
*lcMethods = lcMethods + CR_LF
*lcMethod = lcMethod + CR_LF + C_TAB + 'ENDPROC'
*lcMethod = lcMethod + CR_LF
*lcMethods = lcMethods + lcMethod
ENDFOR
ENDWITH && THIS
*C_FB2PRG_CODE = C_FB2PRG_CODE + C_TAB + lcMethods &&+ CR_LF
ENDIF
CATCH TO loEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
THROW
ENDTRY
RETURN
ENDPROC
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE get_NombresObjetosOLEPublic PROCEDURE get_NombresObjetosOLEPublic
LPARAMETERS ta_NombresObjsOle LPARAMETERS ta_NombresObjsOle
@@ -8511,16 +8603,18 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE IndentarMemo PROCEDURE IndentarMemo
LPARAMETERS tcMethod, tcIndentation LPARAMETERS tcMethod, tcIndentation, tlKeepProcHeader
*-- INDENTA EL C<>DIGO DE UN M<>TODO DADO Y QUITA LA CABECERA DE M<>TODO (PROCEDURE/ENDPROC) SI LA ENCUENTRA *-- INDENTA EL C<>DIGO DE UN M<>TODO DADO Y QUITA LA CABECERA DE M<>TODO (PROCEDURE/ENDPROC) SI LA ENCUENTRA
TRY TRY
LOCAL I, X, lcMethod, llProcedure, lnInicio, lnFin, laLineas(1) LOCAL I, X, lcMethod, llProcedure, lnInicio, lnFin, laLineas(1), lnOffset
lcMethod = '' lcMethod = ''
llProcedure = ( LEFT(tcMethod,10) == 'PROCEDURE ' ;
OR LEFT(tcMethod,17) == 'HIDDEN PROCEDURE ' ;
OR LEFT(tcMethod,20) == 'PROTECTED PROCEDURE ' )
lnInicio = 1 lnInicio = 1
lnOffset = 0
lnFin = ALINES(laLineas, tcMethod) lnFin = ALINES(laLineas, tcMethod)
llProcedure = ( LEFT(laLineas(1),10) == 'PROCEDURE ' ;
OR LEFT(laLineas(1),17) == 'HIDDEN PROCEDURE ' ;
OR LEFT(laLineas(1),20) == 'PROTECTED PROCEDURE ' )
IF VARTYPE(tcIndentation) # 'C' IF VARTYPE(tcIndentation) # 'C'
tcIndentation = '' tcIndentation = ''
ENDIF ENDIF
@@ -8546,15 +8640,20 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- Si encuentra la cabecera de un PROCEDURE, la saltea *-- Si encuentra la cabecera de un PROCEDURE, la saltea
IF llProcedure IF llProcedure
lnInicio = 2 lnOffset = 1
lnFin = lnFin - 1
ENDIF ENDIF
FOR I = lnInicio TO lnFin FOR I = lnInicio + lnOffset TO lnFin - lnOffset
*-- TEXT/ENDTEXT aqu<71> da error 2044 de recursividad. No usar. *-- TEXT/ENDTEXT aqu<71> da error 2044 de recursividad. No usar.
lcMethod = lcMethod + CR_LF + tcIndentation + laLineas(I) lcMethod = lcMethod + CR_LF + tcIndentation + laLineas(I)
ENDFOR ENDFOR
IF llProcedure AND tlKeepProcHeader
laLineas(lnInicio) = C_TAB + laLineas(lnInicio)
laLineas(lnFin) = C_TAB + laLineas(lnFin)
lcMethod = CR_LF + laLineas(lnInicio) + lcMethod + CR_LF + laLineas(lnFin)
ENDIF
lcMethod = SUBSTR(lcMethod,3) && Quito el primer ENTER (CR+LF) lcMethod = SUBSTR(lcMethod,3) && Quito el primer ENTER (CR+LF)
CATCH TO loEx CATCH TO loEx
@@ -8632,6 +8731,75 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE SortMethod PROCEDURE SortMethod
LPARAMETERS tcMethod, taMethods, taCode, tcSorted, tnMethodCount, taPropsAndComments, tnPropsAndComments_Count ;
, taProtected, tnProtected_Count, toFoxBin2Prg
EXTERNAL ARRAY taMethods, taCode, taPropsAndComments, taProtected
#IF .F.
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
#ENDIF
TRY
LOCAL I, I2, laMethods(1,3), lnDeleted, lcMethodName, lnMethodPos, lcMethodType, loEx AS EXCEPTION
IF tnMethodCount > 0 THEN
*-- taMethods[1,3]
*-- 1.Nombre M<>todo
*-- 2.Posici<63>n Original
*-- 3.Tipo (HIDDEN/PROTECTED/NORMAL)
*-- Alphabetical ordering of methods
IF THIS.l_MethodSort_Enabled
ASORT(taMethods,1,-1,0,1)
ENDIF
*FOR I = 1 TO tnMethodCount
* IF taMethods(I,2) > 0 THEN
* tcSorted = m.tcSorted + taCode( taMethods(I,2) )
* ENDIF
*ENDFOR
DIMENSION laMethods(tnMethodCount,3)
lnDeleted = 0
FOR I = tnMethodCount TO 1 STEP -1
IF taMethods(I,2) > 0 THEN
IF '.' $ taMethods(I,1)
*-- Los m<>todos con '.' los mando a otro array
lnDeleted = lnDeleted + 1
laMethods(lnDeleted,1) = taMethods(I,1)
laMethods(lnDeleted,2) = taMethods(I,2)
laMethods(lnDeleted,3) = taMethods(I,3)
ADEL( taMethods, I )
ENDIF
ENDIF
ENDFOR
FOR I = lnDeleted TO 1 STEP -1
*-- Los m<>todos con '.' los paso al final
I2 = tnMethodCount - lnDeleted + (lnDeleted - I) + 1
taMethods(I2,1) = laMethods(I,1)
taMethods(I2,2) = laMethods(I,2)
taMethods(I2,3) = laMethods(I,3)
ENDFOR
ENDIF
CATCH TO loEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
THROW
ENDTRY
RETURN
ENDPROC && SordMethod
*******************************************************************************************************************
PROCEDURE Method2Array
LPARAMETERS tcMethod, taMethods, taCode, tcSorted, tnMethodCount, taPropsAndComments, tnPropsAndComments_Count ; LPARAMETERS tcMethod, taMethods, taCode, tcSorted, tnMethodCount, taPropsAndComments, tnPropsAndComments_Count ;
, taProtected, tnProtected_Count, toFoxBin2Prg , taProtected, tnProtected_Count, toFoxBin2Prg
*-- 29/10/2013 Fernando D. Bozzo *-- 29/10/2013 Fernando D. Bozzo
@@ -8653,18 +8821,20 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
LOCAL lnLineCount, laLine(1), I, lnTextNodes, tcSorted, lnProtectedLine, lcMethod, lnLine_Len, lcLine, llProcOpen ; LOCAL lnLineCount, laLine(1), I, lnTextNodes, tcSorted, lnProtectedLine, lcMethod, lnLine_Len, lcLine, llProcOpen ;
, laLineasExclusion(1), lnBloquesExclusion ; , laLineasExclusion(1), lnBloquesExclusion ;
, loEx AS EXCEPTION , loEx AS EXCEPTION
DIMENSION taMethods(1,3) *DIMENSION taMethods(1,3)
STORE '' TO taMethods, tcSorted, taCode *STORE '' TO taMethods, tcSorted, taCode
tnMethodCount = 0 *tnMethodCount = 0
IF NOT EMPTY(m.tcMethod) AND LEFT(m.tcMethod,9) == "ENDPROC"+CHR(13)+CHR(10) IF NOT EMPTY(m.tcMethod) AND LEFT(m.tcMethod,9) == "ENDPROC"+CHR(13)+CHR(10)
tcMethod = SUBSTR(m.tcMethod,10) tcMethod = SUBSTR(m.tcMethod,10)
ENDIF ENDIF
IF NOT EMPTY(m.tcMethod) IF NOT EMPTY(m.tcMethod)
DIMENSION laLine(1), taMethods(1,3) DIMENSION laLine(1) &&, taMethods(1,3)
STORE '' TO laLine, taMethods, taCode STORE '' TO laLine
STORE 0 TO tnMethodCount, lnTextNodes STORE 0 TO lnTextNodes
*STORE '' TO taMethods, taCode
*STORE 0 TO tnMethodCount
lnLineCount = ALINES(laLine, m.tcMethod) && NO aplicar nung<6E>n formato ni limpieza, que es el C<>DIGO FUENTE lnLineCount = ALINES(laLine, m.tcMethod) && NO aplicar nung<6E>n formato ni limpieza, que es el C<>DIGO FUENTE
@@ -8749,7 +8919,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
LOOP LOOP
ENDIF ENDIF
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) &&+ CR_LF
llProcOpen = .F. llProcOpen = .F.
CASE tnMethodCount = 0 OR NOT llProcOpen AND LEFT( LTRIM(laLine(I)),1 ) = '*' CASE tnMethodCount = 0 OR NOT llProcOpen AND LEFT( LTRIM(laLine(I)),1 ) = '*'
@@ -8790,18 +8960,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDIF ENDIF
ENDIF ENDIF
ENDFOR ENDFOR
*-- Alphabetical ordering of methods
IF THIS.l_MethodSort_Enabled
ASORT(taMethods,1,-1,0,1)
ENDIF
FOR I = 1 TO tnMethodCount
IF taMethods(I,2) > 0 THEN
m.tcSorted = m.tcSorted + taCode(taMethods(I,2))
ENDIF
ENDFOR
ENDIF ENDIF
CATCH TO loEx CATCH TO loEx
@@ -8813,7 +8971,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTRY ENDTRY
RETURN RETURN
ENDPROC && SordMethod ENDPROC && Method2Array
******************************************************************************************************************* *******************************************************************************************************************
@@ -8894,29 +9052,33 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE write_ALL_OBJECT_METHODS PROCEDURE write_ALL_OBJECT_METHODS
LPARAMETERS tcMethods, taPropsAndComments, tnPropsAndComments_Count, taProtected, tnProtected_Count, toFoxBin2Prg LPARAMETERS tcMethods, taMethods, taCode, tnMethodCount, taPropsAndComments, tnPropsAndComments_Count, taProtected, tnProtected_Count, toFoxBin2Prg
*-- Finalmente, todos los m<>todos los ordeno y escribo juntos *-- Finalmente, todos los m<>todos los ordeno y escribo juntos
LOCAL laMethods(1), laCode(1), lnMethodCount, I, lcMethods LOCAL laMethods(1), laCode(1), lnMethodCount, I, lcMethods
IF NOT EMPTY(tcMethods) IF tnMethodCount > 0 THEN
STORE '' TO lcMethods STORE '' TO lcMethods
DIMENSION laMethods(1,3) DIMENSION laMethods(1,3)
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
.SortMethod( @tcMethods, @laMethods, @laCode, '', @lnMethodCount ; .SortMethod( @tcMethods, @taMethods, @taCode, '', @tnMethodCount ;
, @taPropsAndComments, tnPropsAndComments_Count, @taProtected, tnProtected_Count, @toFoxBin2Prg ) , @taPropsAndComments, tnPropsAndComments_Count, @taProtected, tnProtected_Count, @toFoxBin2Prg )
FOR I = 1 TO lnMethodCount lcMethods = C_TAB
FOR I = 1 TO tnMethodCount
*-- Genero los m<>todos indentados *-- Genero los m<>todos indentados
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso *-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
IF laMethods(I,2) = 0 IF taMethods(I,2) = 0
LOOP LOOP
ENDIF ENDIF
lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + C_PROCEDURE + ' ' + laMethods(I,1) *lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + C_PROCEDURE + ' ' + laMethods(I,1)
lcMethods = lcMethods + CR_LF + .IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) ) *lcMethods = lcMethods + CR_LF + .IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )
lcMethods = lcMethods + CR_LF + C_TAB + C_ENDPROC *lcMethods = lcMethods + CR_LF + C_TAB + C_ENDPROC
lcMethods = lcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9), .T. )
lcMethods = lcMethods + CR_LF lcMethods = lcMethods + CR_LF
ENDFOR ENDFOR
ENDWITH && THIS ENDWITH && THIS
@@ -8936,13 +9098,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments
TRY TRY
LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods LOCAL lcMethod, lcMethodName, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods
STORE '' TO lcMethod, lcProcDef, lcMethods STORE '' TO lcMethod, lcMethodName, lcProcDef, lcMethods
IF tnMethodCount > 0 THEN IF tnMethodCount > 0 THEN
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
FOR I = 1 TO tnMethodCount FOR I = 1 TO tnMethodCount
lcMethod = CHRTRAN( taMethods(I,1), '^', '' ) lcMethodName = CHRTRAN( taMethods(I,1), '^', '' )
lnProtectedItem = ASCAN( taProtected, taMethods(I,1), 1, 0, 0, 1+2+4) lnProtectedItem = ASCAN( taProtected, taMethods(I,1), 1, 0, 0, 1+2+4)
IF lnProtectedItem = 0 IF lnProtectedItem = 0
@@ -8960,28 +9122,35 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
lcProcDef = 'PROTECTED PROCEDURE' lcProcDef = 'PROTECTED PROCEDURE'
ENDIF ENDIF
lnCommentRow = ASCAN( taPropsAndComments, '*' + lcMethod, 1, 0, 1, 1+2+4+8) lnCommentRow = ASCAN( taPropsAndComments, '*' + lcMethodName, 1, 0, 1, 1+2+4+8)
*-- Nombre del m<>todo *-- Nombre del m<>todo
TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 *TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<lcProcDef>> <<taMethods(I,1)>> * <<>> <<lcProcDef>> <<taMethods(I,1)>>
ENDTEXT *ENDTEXT
*lcMethods = lcMethods + CR_LF + lcProcDef + ' ' + taMethods(I,1)
lcMethod = CR_LF + lcProcDef + ' ' + taMethods(I,1)
*-- Comentarios del m<>todo (si tiene) *-- Comentarios del m<>todo (si tiene)
IF lnCommentRow > 0 AND NOT EMPTY(taPropsAndComments(lnCommentRow,2)) IF lnCommentRow > 0 AND NOT EMPTY(taPropsAndComments(lnCommentRow,2))
TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 *TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<>> && <<taPropsAndComments(lnCommentRow,2)>> * <<>> && <<taPropsAndComments(lnCommentRow,2)>>
ENDTEXT *ENDTEXT
*lcMethods = lcMethods + C_TAB + C_TAB + taPropsAndComments(lnCommentRow,2)
lcMethod = lcMethod + C_TAB + C_TAB + taPropsAndComments(lnCommentRow,2)
ENDIF ENDIF
*-- C<>digo del m<>todo *-- C<>digo del m<>todo
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
IF taMethods(I,2) > 0 THEN IF taMethods(I,2) > 0 THEN
lcMethods = lcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), C_TAB + C_TAB ) *lcMethods = lcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), C_TAB + C_TAB )
lcMethod = lcMethod + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), C_TAB + C_TAB )
ENDIF ENDIF
lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC' *lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC'
lcMethods = lcMethods + CR_LF *lcMethods = lcMethods + CR_LF
lcMethod = lcMethod + CR_LF + C_TAB + 'ENDPROC'
lcMethod = lcMethod + CR_LF
lcMethods = lcMethods + lcMethod
ENDFOR ENDFOR
ENDWITH && THIS ENDWITH && THIS
@@ -9889,6 +10058,10 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" AND TABLABIN.RESERVED1=="Class" SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" AND TABLABIN.RESERVED1=="Class"
STORE 0 TO lnMethodCount
STORE '' TO laMethods, laCode
loRegClass = NULL
SCATTER MEMO NAME loRegClass SCATTER MEMO NAME loRegClass
IF toFoxBin2Prg.l_NoTimestamps IF toFoxBin2Prg.l_NoTimestamps
@@ -9964,12 +10137,15 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
*-- OBTENGO LOS M<>TODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO *-- OBTENGO LOS M<>TODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO
DIMENSION laMethods(1,3) DIMENSION laMethods(1,3), laCode(1)
laMethods = '' STORE '' TO laMethods, laCode
.SortMethod( loRegClass.METHODS, @laMethods, @laCode, '', @lnMethodCount ; lnMethodCount = 0
.Method2Array( loRegClass.METHODS, @laMethods, @laCode, '', @lnMethodCount ;
, @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg ) , @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg )
.write_CLASS_METHODS( @lnMethodCount, @laMethods, @laCode, @laProtected, @laPropsAndComments ) *.write_CLASS_METHODS( @lnMethodCount, @laMethods, @laCode, @laProtected, @laPropsAndComments )
.get_CLASS_METHODS( @lnMethodCount, @laMethods, @laCode, @laProtected, @laPropsAndComments )
lnLastClass = 1 lnLastClass = 1
lcMethods = '' lcMethods = ''
@@ -9998,7 +10174,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
, @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg ) , @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg )
ENDSCAN ENDSCAN
.write_ALL_OBJECT_METHODS( @lcMethods, @laPropsAndComments, lnPropsAndComments_Count, @laProtected ; .write_ALL_OBJECT_METHODS( @lcMethods, @laMethods, @laCode, @lnMethodCount, @laPropsAndComments, lnPropsAndComments_Count, @laProtected ;
, lnProtected_Count, @toFoxBin2Prg ) , lnProtected_Count, @toFoxBin2Prg )
GOTO RECORD (lnRecno) GOTO RECORD (lnRecno)
@@ -10125,6 +10301,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
AND (EMPTY(TABLABIN.PARENT) ; AND (EMPTY(TABLABIN.PARENT) ;
AND (TABLABIN.BASECLASS == 'dataenvironment' OR TABLABIN.BASECLASS == 'form' OR TABLABIN.BASECLASS == 'formset' ) ) AND (TABLABIN.BASECLASS == 'dataenvironment' OR TABLABIN.BASECLASS == 'form' OR TABLABIN.BASECLASS == 'formset' ) )
STORE 0 TO lnMethodCount
STORE '' TO laMethods, laCode
loRegClass = NULL loRegClass = NULL
SCATTER MEMO NAME loRegClass SCATTER MEMO NAME loRegClass
@@ -10202,12 +10381,15 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
*-- OBTENGO LOS M<>TODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO *-- OBTENGO LOS M<>TODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO
DIMENSION laMethods(1,3) DIMENSION laMethods(1,3), laCode(1)
laMethods = '' STORE '' TO laMethods, laCode
.SortMethod( loRegClass.METHODS, @laMethods, @laCode, '', @lnMethodCount ; lnMethodCount = 0
.Method2Array( loRegClass.METHODS, @laMethods, @laCode, '', @lnMethodCount ;
, @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg ) , @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg )
.write_CLASS_METHODS( @lnMethodCount, @laMethods, @laCode, @laProtected, @laPropsAndComments ) *.write_CLASS_METHODS( @lnMethodCount, @laMethods, @laCode, @laProtected, @laPropsAndComments )
.get_CLASS_METHODS( @lnMethodCount, @laMethods, @laCode, @laProtected, @laPropsAndComments )
lnLastClass = 1 lnLastClass = 1
lcMethods = '' lcMethods = ''
@@ -10238,7 +10420,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
, @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg ) , @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg )
ENDSCAN ENDSCAN
.write_ALL_OBJECT_METHODS( @lcMethods, @laPropsAndComments, lnPropsAndComments_Count, @laProtected ; .write_ALL_OBJECT_METHODS( @lcMethods, @laMethods, @laCode, @lnMethodCount, @laPropsAndComments, lnPropsAndComments_Count, @laProtected ;
, lnProtected_Count, @toFoxBin2Prg ) , lnProtected_Count, @toFoxBin2Prg )
GOTO RECORD (lnRecno) GOTO RECORD (lnRecno)