From a655b389778078a7d7cfa64b5b60e0db58590815 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 14 May 2014 00:44:57 +0200 Subject: [PATCH] =?UTF-8?q?Changeset:=20238=20fdbozzo=20-=2013/05/2014=202?= =?UTF-8?q?3:05:03:=20-=20La=20detecci=C3=B3n=20incorrecta=20de=20PROCEDUR?= =?UTF-8?q?E/ENDPROC/TEXT/ENDTEXT=20puede=20causar=20p=C3=A9rdida=20de=20a?= =?UTF-8?q?lgunos=20m=C3=A9todos=20en=20determinadas=20circunstancias=20(A?= =?UTF-8?q?ndres=20Mendoza)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.pj2 | 3 +- foxbin2prg.pjt | Bin 371268 -> 371830 bytes foxbin2prg.pjx | Bin 1713 -> 1713 bytes foxbin2prg.prg | 360 +++++++++++++++++++++++++++---------------------- 4 files changed, 198 insertions(+), 165 deletions(-) diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index f1ac3f1..6ec139a 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): _ProductName = " FOXBIN2PRG v1.19.22" _MajorVer = "1" _MinorVer = "19" -_Revision = " 321" +_Revision = " 325" _LanguageID = "1034" _AutoIncrement = "1" * @@ -52,6 +52,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" /> + .ADD('props_all.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index a53c6748cec0fe1937f2ebebca88c39dca550441..9c52a656028194196f9ccf7cee16cb014787ac35 100644 GIT binary patch delta 12018 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 G(f~1uP~aA#px~we1g0h?AfZTp28J+| s$xm3lO`L(u5JN*#BO^mI6C*<~%h<@s*aEH>qz?)}Vru*hlatx}0D+_wt^fc4 delta 120 zcmdnUyOEd0fRB}TBg;+}RzourBa_L8SpF*;8k-wgFhGG@h=PKf0uY#*n1F;trm`}q s@lSrj>TM#pij^V6(9qP#2&C5#!ZI*6v4rad>4O50nEEQ#$;oVf0GXT>vj6}9 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index add386e..f2a83af 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -515,7 +515,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM SET POINT TO '.' SET SEPARATOR TO ',' - lcSys16 = SYS(16) + lcSys16 = SYS(16) IF LEFT(lcSys16,10) == 'PROCEDURE ' lnPosProg = AT(" ", lcSys16, 2) + 1 ELSE @@ -1482,7 +1482,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- si el OutputFile se debe regenerar o no. lnFileCount = ADIR( laFiles, FORCEEXT( .c_InputFile, '*' ), '', 1 ) STORE {//::} TO .t_InputFile_TimeStamp, .t_OutputFile_TimeStamp - + IF lnFileCount >= 1 THEN I = ASCAN( laFiles, JUSTFNAME(.c_InputFile), 1, 0, 1, 1+2+4+8 ) IF I > 0 THEN @@ -1498,7 +1498,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF ENDIF ENDIF - + IF .t_InputFile_TimeStamp >= .t_OutputFile_TimeStamp THEN .c_Type = UPPER(JUSTEXT(.c_OutputFile)) .o_Conversor.c_InputFile = .c_InputFile @@ -1519,9 +1519,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- Optimizado: El Origen es anterior al Destino - No hace falta regenerar *.writeLog( '> El archivo de salida [<>] no se regenera por ser más nuevo que el de entrada.' ) .writeLog( TEXTMERGE(C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC) ) - + ENDIF - + .normalizarCapitalizacionArchivos() ENDWITH && THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' @@ -1541,7 +1541,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM FINALLY loFSO = NULL THIS.o_Conversor = NULL - + IF lnCodError = 0 OR NOT THIS.l_ShowErrors THEN THIS.writeLog( REPLICATE('-',80) ) *THIS.writeLog_Flush() @@ -1872,7 +1872,7 @@ DEFINE CLASS c_conversor_base AS SESSION C_FB2PRG_CODE = '' && Contendrá todo el código generado THIS.c_CurDir = SYS(5) + CURDIR() THIS.oFSO = CREATEOBJECT( "Scripting.FileSystemObject") - lcSys16 = SYS(16) + lcSys16 = SYS(16) IF LEFT(lcSys16,10) == 'PROCEDURE ' lnPosProg = AT(" ", lcSys16, 2) + 1 @@ -2536,11 +2536,11 @@ DEFINE CLASS c_conversor_base AS SESSION lcPropName = 'A999' + lcPropName OTHERWISE - *-- Soporte de evaluación de propiedades por clase evaluada + *-- Soporte de evaluación de propiedades por clase evaluada *IF THIS.c_ClaseActual == 'form' * lnPos = ASCAN( THIS.a_SpecialProps_Form, lcPropName, 1, 0, 1, 1+2+4 ) *ELSE - lnPos = ASCAN( THIS.a_SpecialProps, lcPropName, 1, 0, 1, 1+2+4 ) + lnPos = ASCAN( THIS.a_SpecialProps, lcPropName, 1, 0, 1, 1+2+4 ) *ENDIF lcPropName = 'A' + PADL( EVL(lnPos,998), 3, '0' ) + lcPropName ENDCASE @@ -2706,162 +2706,162 @@ DEFINE CLASS c_conversor_base AS SESSION PROCEDURE SortSpecialProps TRY - LOCAL I, loEx as Exception, lcPropsFile - lcPropsFile = '' + LOCAL I, loEx AS EXCEPTION, lcPropsFile + lcPropsFile = '' - WITH THIS AS conversor_base OF "FOXBIN2PRG.PRG" - *-- (TODAS) => Antes era solo FORM - I = 0 - - lcPropsFile = FORCEPATH( "props_all.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) - - I = ALINES( THIS.a_SpecialProps, FILETOSTR( lcPropsFile ), 1+4 ) + WITH THIS AS conversor_base OF "FOXBIN2PRG.PRG" + *-- (TODAS) => Antes era solo FORM + I = 0 + + lcPropsFile = FORCEPATH( "props_all.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) + + I = ALINES( THIS.a_SpecialProps, FILETOSTR( lcPropsFile ), 1+4 ) - *-- DEMÁS CLASES - IF .F. - I = 0 - .SortSpecialProps_Add( 'FRXDataSession', @I ) && En un VCX lo ví primero de todo y también luego de Height ¿? - .SortSpecialProps_Add( 'ErasePage', @I ) && PageFrame: Debe estar antes que PageCount - .SortSpecialProps_Add( 'PageCount', @I ) && PageFrame: Debe estar antes que ActivePage - .SortSpecialProps_Add( 'ActivePage', @I ) && PageFrame: Debe estar antes que Top/Left/With/Height - .SortSpecialProps_Add( 'ButtonCount', @I ) - .SortSpecialProps_Add( 'ColumnCount', @I ) - .SortSpecialProps_Add( 'Value', @I ) - .SortSpecialProps_Add( 'Comment', @I ) - .SortSpecialProps_Add( 'ControlSource', @I ) - .SortSpecialProps_Add( 'DataSession', @I ) - .SortSpecialProps_Add( 'DeleteMark', @I ) - .SortSpecialProps_Add( 'ScaleMode', @I ) - .SortSpecialProps_Add( 'Tag', @I ) - .SortSpecialProps_Add( 'OLEDragMode', @I ) && Image: Debe estar antes que OLEDragPicture - .SortSpecialProps_Add( 'OLEDragPicture', @I ) && Image: Debe estar antes que OLEDropMode - .SortSpecialProps_Add( 'OLEDropMode', @I ) && Image: Debe estar antes que OLEDropEffects - .SortSpecialProps_Add( 'OLEDropEffects', @I ) && Image: Debe estar antes que DragMode - .SortSpecialProps_Add( 'DragMode', @I ) && Image: Debe estar antes que DragIcon - .SortSpecialProps_Add( 'DragIcon', @I ) && Image: Debe estar antes que Anchor - .SortSpecialProps_Add( 'Anchor', @I ) && Image: Debe estar antes que Picture - .SortSpecialProps_Add( 'DefTop', @I ) && Propiedad con evaluación: Debe estar antes que Top - .SortSpecialProps_Add( 'DefLeft', @I ) && Propiedad con evaluación: Debe estar antes que Left - .SortSpecialProps_Add( 'DefHeight', @I ) && Propiedad con evaluación: Debe estar antes que Height - .SortSpecialProps_Add( 'DefWidth', @I ) && Propiedad con evaluación: Debe estar antes que Width - .SortSpecialProps_Add( 'Picture', @I ) && Image: Debe estar antes que Stretch y después de DefTop/DefLeft - .SortSpecialProps_Add( 'Stretch', @I ) && Image: Debe estar antes que BackStyle - .SortSpecialProps_Add( 'BackStyle', @I ) && Image: Debe estar antes que BorderStyle - .SortSpecialProps_Add( 'BorderStyle', @I ) && - .SortSpecialProps_Add( 'BorderWidth', @I ) - .SortSpecialProps_Add( 'Enabled', @I ) - .SortSpecialProps_Add( 'Top', @I ) - .SortSpecialProps_Add( 'Left', @I ) - .SortSpecialProps_Add( 'Height', @I ) - .SortSpecialProps_Add( 'Width', @I ) - .SortSpecialProps_Add( 'MousePointer', @I ) - .SortSpecialProps_Add( 'MouseIcon', @I ) - .SortSpecialProps_Add( 'Visible', @I ) - .SortSpecialProps_Add( 'MaxLength', @I ) - .SortSpecialProps_Add( 'Alias', @I ) - .SortSpecialProps_Add( 'BufferModeOverride', @I ) - .SortSpecialProps_Add( 'Order', @I ) - .SortSpecialProps_Add( 'OrderDirection', @I ) - .SortSpecialProps_Add( 'CursorSource', @I ) - .SortSpecialProps_Add( 'Exclusive', @I ) - .SortSpecialProps_Add( 'Filter', @I ) - .SortSpecialProps_Add( 'Panel', @I ) - .SortSpecialProps_Add( 'ReadOnly', @I ) - .SortSpecialProps_Add( 'RecordSource', @I ) - .SortSpecialProps_Add( 'RecordSourceType', @I ) - .SortSpecialProps_Add( 'NoDataOnLoad', @I ) - .SortSpecialProps_Add( 'OpenViews', @I ) - .SortSpecialProps_Add( 'AutoOpenTables', @I ) - .SortSpecialProps_Add( 'AutoCloseTables', @I ) - .SortSpecialProps_Add( 'InitialSelectedAlias', @I ) - .SortSpecialProps_Add( 'DataSource', @I ) - .SortSpecialProps_Add( 'DataSourceType ', @I ) - .SortSpecialProps_Add( 'Desktop', @I ) - .SortSpecialProps_Add( 'ShowWindow', @I ) - .SortSpecialProps_Add( 'ScrollBars', @I ) - .SortSpecialProps_Add( 'ShowInTaskBar', @I ) - .SortSpecialProps_Add( 'DoCreate', @I ) - .SortSpecialProps_Add( 'Tag', @I ) - .SortSpecialProps_Add( 'ShowTips', @I ) - .SortSpecialProps_Add( 'BufferMode', @I ) - .SortSpecialProps_Add( 'AutoCenter', @I ) - .SortSpecialProps_Add( 'AutoSize', @I ) - .SortSpecialProps_Add( 'WordWrap', @I ) - .SortSpecialProps_Add( 'Caption', @I ) - .SortSpecialProps_Add( 'ControlBox', @I ) - .SortSpecialProps_Add( 'Closable', @I ) - .SortSpecialProps_Add( 'Curvature', @I ) - .SortSpecialProps_Add( 'FontBold', @I ) - .SortSpecialProps_Add( 'FontCondense', @I ) - .SortSpecialProps_Add( 'FontExtend', @I ) - .SortSpecialProps_Add( 'FontItalic', @I ) - .SortSpecialProps_Add( 'FontName', @I ) - .SortSpecialProps_Add( 'FontOutline', @I ) - .SortSpecialProps_Add( 'FontShadow', @I ) - .SortSpecialProps_Add( 'FontSize', @I ) - .SortSpecialProps_Add( 'FontStrikethru', @I ) - .SortSpecialProps_Add( 'FontUnderline', @I ) - .SortSpecialProps_Add( 'HalfHeightCaption', @I ) - .SortSpecialProps_Add( 'Margin', @I ) - .SortSpecialProps_Add( 'MaxButton', @I ) - .SortSpecialProps_Add( 'MinButton', @I ) - .SortSpecialProps_Add( 'Movable', @I ) - .SortSpecialProps_Add( 'MaxHeight', @I ) - .SortSpecialProps_Add( 'MaxWidth', @I ) - .SortSpecialProps_Add( 'MinHeight', @I ) - .SortSpecialProps_Add( 'MinWidth', @I ) - .SortSpecialProps_Add( 'MaxTop', @I ) - .SortSpecialProps_Add( 'MaxLeft', @I ) - .SortSpecialProps_Add( 'MDIForm', @I ) - .SortSpecialProps_Add( 'ClipControls', @I ) - .SortSpecialProps_Add( 'DrawMode', @I ) - .SortSpecialProps_Add( 'DrawStyle', @I ) - .SortSpecialProps_Add( 'DrawWidth', @I ) - .SortSpecialProps_Add( 'FillStyle', @I ) - .SortSpecialProps_Add( 'Icon', @I ) - .SortSpecialProps_Add( 'KeyPreview', @I ) - .SortSpecialProps_Add( 'TabIndex', @I ) - .SortSpecialProps_Add( 'TabStop', @I ) - .SortSpecialProps_Add( 'TitleBar', @I ) - .SortSpecialProps_Add( 'WindowType', @I ) - .SortSpecialProps_Add( 'WindowState', @I ) - .SortSpecialProps_Add( 'LockScreen', @I ) - .SortSpecialProps_Add( 'AlwaysOnTop', @I ) - .SortSpecialProps_Add( 'AlwaysOnBottom', @I ) - .SortSpecialProps_Add( 'SizeBox', @I ) - .SortSpecialProps_Add( 'SpecialEffect', @I ) - .SortSpecialProps_Add( 'ZoomBox', @I ) - .SortSpecialProps_Add( 'ZOrderSet', @I ) - .SortSpecialProps_Add( 'HelpContextID', @I ) - .SortSpecialProps_Add( 'WhatsThisHelpID', @I ) - .SortSpecialProps_Add( 'WhatsThisHelp', @I ) - .SortSpecialProps_Add( 'WhatsThisButton', @I ) - .SortSpecialProps_Add( 'RightToLeft', @I ) - .SortSpecialProps_Add( 'DefOleLCID', @I ) - .SortSpecialProps_Add( 'MacDesktop', @I ) - .SortSpecialProps_Add( 'ColorSource', @I ) - .SortSpecialProps_Add( 'ForeColor', @I ) - .SortSpecialProps_Add( 'DisableForeColor', @I ) - .SortSpecialProps_Add( 'BackColor', @I ) - .SortSpecialProps_Add( 'FillColor', @I ) - .SortSpecialProps_Add( 'HScrollSmallChange', @I ) - .SortSpecialProps_Add( 'VScrollSmallChange', @I ) - .SortSpecialProps_Add( 'ContinuousScroll', @I ) - .SortSpecialProps_Add( 'BindControls', @I ) - .SortSpecialProps_Add( 'AllowOutput', @I ) - .SortSpecialProps_Add( 'Dockable', @I ) - .SortSpecialProps_Add( '_memberdata', @I ) - .SortSpecialProps_Add( 'Themes', @I ) - *.SortSpecialProps_Add( 'Name', @I ) && System "Name" property - ENDIF - ENDWITH + *-- DEMÁS CLASES + IF .F. + I = 0 + .SortSpecialProps_Add( 'FRXDataSession', @I ) && En un VCX lo ví primero de todo y también luego de Height ¿? + .SortSpecialProps_Add( 'ErasePage', @I ) && PageFrame: Debe estar antes que PageCount + .SortSpecialProps_Add( 'PageCount', @I ) && PageFrame: Debe estar antes que ActivePage + .SortSpecialProps_Add( 'ActivePage', @I ) && PageFrame: Debe estar antes que Top/Left/With/Height + .SortSpecialProps_Add( 'ButtonCount', @I ) + .SortSpecialProps_Add( 'ColumnCount', @I ) + .SortSpecialProps_Add( 'Value', @I ) + .SortSpecialProps_Add( 'Comment', @I ) + .SortSpecialProps_Add( 'ControlSource', @I ) + .SortSpecialProps_Add( 'DataSession', @I ) + .SortSpecialProps_Add( 'DeleteMark', @I ) + .SortSpecialProps_Add( 'ScaleMode', @I ) + .SortSpecialProps_Add( 'Tag', @I ) + .SortSpecialProps_Add( 'OLEDragMode', @I ) && Image: Debe estar antes que OLEDragPicture + .SortSpecialProps_Add( 'OLEDragPicture', @I ) && Image: Debe estar antes que OLEDropMode + .SortSpecialProps_Add( 'OLEDropMode', @I ) && Image: Debe estar antes que OLEDropEffects + .SortSpecialProps_Add( 'OLEDropEffects', @I ) && Image: Debe estar antes que DragMode + .SortSpecialProps_Add( 'DragMode', @I ) && Image: Debe estar antes que DragIcon + .SortSpecialProps_Add( 'DragIcon', @I ) && Image: Debe estar antes que Anchor + .SortSpecialProps_Add( 'Anchor', @I ) && Image: Debe estar antes que Picture + .SortSpecialProps_Add( 'DefTop', @I ) && Propiedad con evaluación: Debe estar antes que Top + .SortSpecialProps_Add( 'DefLeft', @I ) && Propiedad con evaluación: Debe estar antes que Left + .SortSpecialProps_Add( 'DefHeight', @I ) && Propiedad con evaluación: Debe estar antes que Height + .SortSpecialProps_Add( 'DefWidth', @I ) && Propiedad con evaluación: Debe estar antes que Width + .SortSpecialProps_Add( 'Picture', @I ) && Image: Debe estar antes que Stretch y después de DefTop/DefLeft + .SortSpecialProps_Add( 'Stretch', @I ) && Image: Debe estar antes que BackStyle + .SortSpecialProps_Add( 'BackStyle', @I ) && Image: Debe estar antes que BorderStyle + .SortSpecialProps_Add( 'BorderStyle', @I ) && + .SortSpecialProps_Add( 'BorderWidth', @I ) + .SortSpecialProps_Add( 'Enabled', @I ) + .SortSpecialProps_Add( 'Top', @I ) + .SortSpecialProps_Add( 'Left', @I ) + .SortSpecialProps_Add( 'Height', @I ) + .SortSpecialProps_Add( 'Width', @I ) + .SortSpecialProps_Add( 'MousePointer', @I ) + .SortSpecialProps_Add( 'MouseIcon', @I ) + .SortSpecialProps_Add( 'Visible', @I ) + .SortSpecialProps_Add( 'MaxLength', @I ) + .SortSpecialProps_Add( 'Alias', @I ) + .SortSpecialProps_Add( 'BufferModeOverride', @I ) + .SortSpecialProps_Add( 'Order', @I ) + .SortSpecialProps_Add( 'OrderDirection', @I ) + .SortSpecialProps_Add( 'CursorSource', @I ) + .SortSpecialProps_Add( 'Exclusive', @I ) + .SortSpecialProps_Add( 'Filter', @I ) + .SortSpecialProps_Add( 'Panel', @I ) + .SortSpecialProps_Add( 'ReadOnly', @I ) + .SortSpecialProps_Add( 'RecordSource', @I ) + .SortSpecialProps_Add( 'RecordSourceType', @I ) + .SortSpecialProps_Add( 'NoDataOnLoad', @I ) + .SortSpecialProps_Add( 'OpenViews', @I ) + .SortSpecialProps_Add( 'AutoOpenTables', @I ) + .SortSpecialProps_Add( 'AutoCloseTables', @I ) + .SortSpecialProps_Add( 'InitialSelectedAlias', @I ) + .SortSpecialProps_Add( 'DataSource', @I ) + .SortSpecialProps_Add( 'DataSourceType ', @I ) + .SortSpecialProps_Add( 'Desktop', @I ) + .SortSpecialProps_Add( 'ShowWindow', @I ) + .SortSpecialProps_Add( 'ScrollBars', @I ) + .SortSpecialProps_Add( 'ShowInTaskBar', @I ) + .SortSpecialProps_Add( 'DoCreate', @I ) + .SortSpecialProps_Add( 'Tag', @I ) + .SortSpecialProps_Add( 'ShowTips', @I ) + .SortSpecialProps_Add( 'BufferMode', @I ) + .SortSpecialProps_Add( 'AutoCenter', @I ) + .SortSpecialProps_Add( 'AutoSize', @I ) + .SortSpecialProps_Add( 'WordWrap', @I ) + .SortSpecialProps_Add( 'Caption', @I ) + .SortSpecialProps_Add( 'ControlBox', @I ) + .SortSpecialProps_Add( 'Closable', @I ) + .SortSpecialProps_Add( 'Curvature', @I ) + .SortSpecialProps_Add( 'FontBold', @I ) + .SortSpecialProps_Add( 'FontCondense', @I ) + .SortSpecialProps_Add( 'FontExtend', @I ) + .SortSpecialProps_Add( 'FontItalic', @I ) + .SortSpecialProps_Add( 'FontName', @I ) + .SortSpecialProps_Add( 'FontOutline', @I ) + .SortSpecialProps_Add( 'FontShadow', @I ) + .SortSpecialProps_Add( 'FontSize', @I ) + .SortSpecialProps_Add( 'FontStrikethru', @I ) + .SortSpecialProps_Add( 'FontUnderline', @I ) + .SortSpecialProps_Add( 'HalfHeightCaption', @I ) + .SortSpecialProps_Add( 'Margin', @I ) + .SortSpecialProps_Add( 'MaxButton', @I ) + .SortSpecialProps_Add( 'MinButton', @I ) + .SortSpecialProps_Add( 'Movable', @I ) + .SortSpecialProps_Add( 'MaxHeight', @I ) + .SortSpecialProps_Add( 'MaxWidth', @I ) + .SortSpecialProps_Add( 'MinHeight', @I ) + .SortSpecialProps_Add( 'MinWidth', @I ) + .SortSpecialProps_Add( 'MaxTop', @I ) + .SortSpecialProps_Add( 'MaxLeft', @I ) + .SortSpecialProps_Add( 'MDIForm', @I ) + .SortSpecialProps_Add( 'ClipControls', @I ) + .SortSpecialProps_Add( 'DrawMode', @I ) + .SortSpecialProps_Add( 'DrawStyle', @I ) + .SortSpecialProps_Add( 'DrawWidth', @I ) + .SortSpecialProps_Add( 'FillStyle', @I ) + .SortSpecialProps_Add( 'Icon', @I ) + .SortSpecialProps_Add( 'KeyPreview', @I ) + .SortSpecialProps_Add( 'TabIndex', @I ) + .SortSpecialProps_Add( 'TabStop', @I ) + .SortSpecialProps_Add( 'TitleBar', @I ) + .SortSpecialProps_Add( 'WindowType', @I ) + .SortSpecialProps_Add( 'WindowState', @I ) + .SortSpecialProps_Add( 'LockScreen', @I ) + .SortSpecialProps_Add( 'AlwaysOnTop', @I ) + .SortSpecialProps_Add( 'AlwaysOnBottom', @I ) + .SortSpecialProps_Add( 'SizeBox', @I ) + .SortSpecialProps_Add( 'SpecialEffect', @I ) + .SortSpecialProps_Add( 'ZoomBox', @I ) + .SortSpecialProps_Add( 'ZOrderSet', @I ) + .SortSpecialProps_Add( 'HelpContextID', @I ) + .SortSpecialProps_Add( 'WhatsThisHelpID', @I ) + .SortSpecialProps_Add( 'WhatsThisHelp', @I ) + .SortSpecialProps_Add( 'WhatsThisButton', @I ) + .SortSpecialProps_Add( 'RightToLeft', @I ) + .SortSpecialProps_Add( 'DefOleLCID', @I ) + .SortSpecialProps_Add( 'MacDesktop', @I ) + .SortSpecialProps_Add( 'ColorSource', @I ) + .SortSpecialProps_Add( 'ForeColor', @I ) + .SortSpecialProps_Add( 'DisableForeColor', @I ) + .SortSpecialProps_Add( 'BackColor', @I ) + .SortSpecialProps_Add( 'FillColor', @I ) + .SortSpecialProps_Add( 'HScrollSmallChange', @I ) + .SortSpecialProps_Add( 'VScrollSmallChange', @I ) + .SortSpecialProps_Add( 'ContinuousScroll', @I ) + .SortSpecialProps_Add( 'BindControls', @I ) + .SortSpecialProps_Add( 'AllowOutput', @I ) + .SortSpecialProps_Add( 'Dockable', @I ) + .SortSpecialProps_Add( '_memberdata', @I ) + .SortSpecialProps_Add( 'Themes', @I ) + *.SortSpecialProps_Add( 'Name', @I ) && System "Name" property + ENDIF + ENDWITH CATCH TO loEx - loEx.UserValue = 'lcPropsFile = ' + lcPropsFile - + loEx.USERVALUE = 'lcPropsFile = ' + lcPropsFile + IF THIS.l_Debug AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -7840,7 +7840,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- taCode[1] *-- Bloque de código del método en su posición original TRY - LOCAL lnLineCount, laLine(1), I, lnTextNodes, tcSorted, lnProtectedLine, lcMethod + LOCAL lnLineCount, laLine(1), I, lnTextNodes, tcSorted, lnProtectedLine, lcMethod, lnLine_Len, lcLine LOCAL loEx AS EXCEPTION DIMENSION taMethods(1,3) STORE '' TO taMethods, m.tcSorted, taCode @@ -7885,16 +7885,39 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- Analyze and count line methods, get method names and consolidate block code FOR I = 1 TO lnLineCount + lnLine_Len = LEN( laLine(I) ) + DO CASE - CASE LEFT(laLine(I), 4) == C_TEXT + CASE UPPER( LEFT(laLine(I), 4) ) == "TEXT" + lcLine = UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' + IF lnLine_Len >= 4 AND LEFT(lcLine,5) == 'TEXT ' + *-- Es el comando TEXT + ELSE + *-- Es otra cosa (variable, etc) + taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF + LOOP + ENDIF + lnTextNodes = lnTextNodes + 1 taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF - CASE LEFT(laLine(I), 7) == C_ENDTEXT + CASE UPPER( LEFT(laLine(I), 4) ) == "ENDT" + lcLine = UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' + IF lnLine_Len >= 7 AND LEFT(lcLine,8) == 'ENDTEXT ' ; + OR lnLine_Len >= 6 AND LEFT(lcLine,7) == 'ENDTEX ' ; + OR lnLine_Len >= 5 AND LEFT(lcLine,6) == 'ENDTE ' ; + OR lnLine_Len >= 4 AND LEFT(lcLine,5) == 'ENDT ' + *-- Es el comando ENDTEXT + ELSE + *-- Es otra cosa (variable, etc) + taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF + LOOP + ENDIF + lnTextNodes = lnTextNodes - 1 taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF - CASE lnTextNodes = 0 AND LEFT(laLine(I), 10) == 'PROCEDURE ' + CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 10) ) == 'PROCEDURE ' tnMethodCount = tnMethodCount + 1 DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount) taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 11) ) @@ -7902,7 +7925,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base taMethods(tnMethodCount, 3) = '' taCode(tnMethodCount) = laLine(I) + CR_LF - CASE lnTextNodes = 0 AND LEFT(laLine(I), 17) == 'HIDDEN PROCEDURE ' + CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 17) ) == 'HIDDEN PROCEDURE ' tnMethodCount = tnMethodCount + 1 DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount) taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 18) ) @@ -7910,7 +7933,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base taMethods(tnMethodCount, 3) = 'HIDDEN ' taCode(tnMethodCount) = laLine(I) + CR_LF - CASE lnTextNodes = 0 AND LEFT(laLine(I), 20) == 'PROTECTED PROCEDURE ' + CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 20) ) == 'PROTECTED PROCEDURE ' tnMethodCount = tnMethodCount + 1 DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount) taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 21) ) @@ -7919,6 +7942,15 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base taCode(tnMethodCount) = laLine(I) + CR_LF CASE lnTextNodes = 0 AND LEFT(laLine(I), 7) == 'ENDPROC' + lcLine = UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' + IF lnLine_Len >= 7 AND LEFT(lcLine,8) == 'ENDPROC ' + *-- Es el final de estructura ENDPROC + ELSE + *-- Es otra cosa (variable, etc) + taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF + LOOP + ENDIF + taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF CASE tnMethodCount = 0 && Skip empty lines before methods begin