diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index 28e4e4c..eb1c747 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -39,6 +39,8 @@ Change History ------------------------------------------------------------- - Bug Fix: Fixed processing cancelation with Esc key - Feature: Sort table/view fields alphabetically to facilitate diffing and merging, while maintaining a list with the original field order for correct DBC regeneration (Ryan Harris) - Feature: Apply ClassPerFile to DBC connections, tables, views and SPs (Ryan Harris) +- Bug Fix: Views now save/restore their Path and RecordCount properties +- Feature: New default FoxBin2Prg App icon and background image, configurable with a new CFG "BackgroundImage" setting 2015/01/18 v1.19.41 - Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes. diff --git a/foxbin2prg.exe b/foxbin2prg.exe index fb785e3..0984974 100644 Binary files a/foxbin2prg.exe and b/foxbin2prg.exe differ diff --git a/foxbin2prg.ico b/foxbin2prg.ico new file mode 100644 index 0000000..b2c8b7d Binary files /dev/null and b/foxbin2prg.ico differ diff --git a/foxbin2prg.jpg b/foxbin2prg.jpg new file mode 100644 index 0000000..62f369f Binary files /dev/null and b/foxbin2prg.jpg differ diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 410e913..ffaa5f7 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -51,6 +51,8 @@ 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.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" /> + .ADD('foxbin2prg.jpg') && *< FileMetadata: Type="x" 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" /> .ADD('props_checkbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> @@ -153,6 +155,7 @@ ENDWITH WITH loProject * .SetMain(lcCurdir + 'foxbin2prg.prg') + .Icon = lcCurdir + 'foxbin2prg.ico' .Debug = .T. .Encrypted = .F. *<.CmntStyle = 1 /> diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index f70ac2b..4b6ebc8 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 4a72f6a..dc49727 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index acbbda0..cf51d74 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -512,9 +512,6 @@ QUIT DEFINE CLASS c_foxbin2prg AS SESSION - #IF .F. - LOCAL THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' - #ENDIF _MEMBERDATA = [] ; + [] ; + [] ; @@ -580,6 +577,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -677,6 +675,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION l_ClassPerFileCheck = .F. l_RedirectClassPerFileToMain = .F. l_NoTimestamps = .T. + c_BackgroundImage = '' l_ClearUniqueID = .T. l_ClearDBFLastUpdate = .T. l_OptimizeByFilestamp = .F. @@ -724,6 +723,10 @@ DEFINE CLASS c_foxbin2prg AS SESSION PROCEDURE INIT LPARAMETERS tcCFG_File, tcCancelWithEscKey + #IF .F. + LOCAL THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + #ENDIF + LOCAL lcSys16, lnPosProg, lc_Foxbin2prg_EXE, laValues(1,5) SET DELETED ON SET DATE YMD @@ -763,6 +766,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION THIS.c_Foxbin2prg_FullPath = SUBSTR( lcSys16, lnPosProg ) THIS.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' ) ) + THIS.c_BackgroundImage = ADDBS(JUSTPATH(THIS.c_Foxbin2prg_FullPath)) + 'foxbin2prg.jpg' THIS.c_CurDir = SYS(5) + CURDIR() lc_Foxbin2prg_EXE = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'EXE' ) THIS.c_FB2PRG_EXE_Version = 'v' + IIF( AGETFILEVERSION( laValues, lc_Foxbin2prg_EXE ) = 0, TRANSFORM(THIS.n_FB2PRG_Version), laValues(4) ) @@ -1182,6 +1186,15 @@ DEFINE CLASS c_foxbin2prg AS SESSION ENDPROC + PROCEDURE c_BackgroundImage_ACCESS + IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) ) + RETURN THIS.c_BackgroundImage + ELSE + RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).c_BackgroundImage, THIS.c_BackgroundImage ) + ENDIF + ENDPROC + + PROCEDURE ChangeFileAttribute * Using Win32 Functions in Visual FoxPro * example=103 @@ -1422,7 +1435,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION PROCEDURE cargar_frm_avance IF VARTYPE(THIS.o_Frm_Avance) <> "O" THEN - THIS.o_Frm_Avance = CREATEOBJECT("frm_avance") + THIS.o_Frm_Avance = CREATEOBJECT("frm_avance", THIS) THIS.o_Frm_Avance.Show() ENDIF ENDPROC @@ -1748,6 +1761,13 @@ DEFINE CLASS c_foxbin2prg AS SESSION .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > DBC_Conversion_Support: ' + TRANSFORM(lo_CFG.DBC_Conversion_Support) ) ENDIF + CASE LEFT( laConfig(I), 16 ) == LOWER('BackgroundImage:') + lcValue = ALLTRIM( SUBSTR( laConfig(I), 17 ) ) + IF EMPTY(lcValue) OR FILE( lcValue ) THEN + lo_CFG.c_BackgroundImage = lcValue + .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > BackgroundImage: ' + TRANSFORM(lo_CFG.c_BackgroundImage) ) + ENDIF + ENDCASE ENDFOR @@ -1801,6 +1821,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION .writeLog( C_TAB + 'l_RedirectClassPerFileToMain: ' + TRANSFORM(.l_RedirectClassPerFileToMain) ) .writeLog( C_TAB + 'l_Debug: ' + TRANSFORM(.l_Debug) ) .writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) + .writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) ) .writeLog( C_TAB + 'l_OptimizeByFilestamp: ' + TRANSFORM(.l_OptimizeByFilestamp) ) .writeLog( C_TAB + 'l_DropNullCharsFromCode: ' + TRANSFORM(.l_DropNullCharsFromCode) ) .writeLog( C_TAB + 'l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) ) @@ -2188,7 +2209,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION AND lcInputFile_Type == C_FILETYPE_DIRECTORY THEN *-- Se seleccionó un directorio y se puede elegir: Bin2Txt, Txt2Bin y Nada .writeLog( loLang.C_INTERACTIVE_DIRECTORY_SELECTION_LOC ) - loFrm_Interactive = CREATEOBJECT('frm_interactive') + loFrm_Interactive = CREATEOBJECT('frm_interactive', THIS) loFrm_Interactive.Show() READ EVENTS lnConversionOption = loFrm_Interactive.n_ConversionType @@ -4031,9 +4052,25 @@ DEFINE CLASS frm_avance AS FORM ENDPROC - PROCEDURE Init + PROCEDURE INIT + LPARAMETERS toFoxBin2Prg + + #IF .F. + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + #ENDIF LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang + + IF VARTYPE(toFoxBin2Prg) = "O" THEN + IF FILE( FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) ) THEN + THIS.Icon = FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) + ENDIF + IF FILE( toFoxBin2Prg.c_BackgroundImage ) THEN + CLEAR RESOURCES + THIS.Picture = toFoxBin2Prg.c_BackgroundImage + ENDIF + ENDIF + THIS.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' > - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')' THIS.nValue = 0 THIS.nValue2 = 0 @@ -4115,6 +4152,17 @@ DEFINE CLASS frm_interactive AS form Name = "cmd_None" + PROCEDURE INIT + LPARAMETERS toFoxBin2Prg + + IF VARTYPE(toFoxBin2Prg) = "O" THEN + IF FILE( FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) ) THEN + THIS.Icon = FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) + ENDIF + ENDIF + ENDPROC + + PROCEDURE do_selection THISFORM.Hide() CLEAR EVENTS @@ -20932,7 +20980,7 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE TRY LOCAL X, lcText, loEx AS EXCEPTION lcText = '' - + FOR X = 1 TO ALEN(taTagInfo,1) IF TAG('', X) == taTagInfo(I,1) THEN EXIT @@ -24211,6 +24259,7 @@ DEFINE CLASS CL_CFG AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] #IF .F. @@ -24252,7 +24301,7 @@ DEFINE CLASS CL_CFG AS CUSTOM DBF_Conversion_Included = NULL DBF_Conversion_Excluded = NULL DBC_Conversion_Support = NULL - + c_BackgroundImage = NULL ENDDEFINE