diff --git a/TESTS/DATOS_READONLY/cplgd2sg.frt b/TESTS/DATOS_READONLY/cplgd2sg.frt
new file mode 100644
index 0000000..e08dace
Binary files /dev/null and b/TESTS/DATOS_READONLY/cplgd2sg.frt differ
diff --git a/TESTS/DATOS_READONLY/cplgd2sg.frx b/TESTS/DATOS_READONLY/cplgd2sg.frx
new file mode 100644
index 0000000..b5e30fb
Binary files /dev/null and b/TESTS/DATOS_READONLY/cplgd2sg.frx differ
diff --git a/TESTS/DATOS_READONLY/f_checkbox.sct b/TESTS/DATOS_READONLY/f_checkbox.sct
new file mode 100644
index 0000000..29f7075
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_checkbox.sct differ
diff --git a/TESTS/DATOS_READONLY/f_checkbox.scx b/TESTS/DATOS_READONLY/f_checkbox.scx
new file mode 100644
index 0000000..59e84b1
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_checkbox.scx differ
diff --git a/TESTS/DATOS_READONLY/f_combobox.sct b/TESTS/DATOS_READONLY/f_combobox.sct
new file mode 100644
index 0000000..4a650fd
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_combobox.sct differ
diff --git a/TESTS/DATOS_READONLY/f_combobox.scx b/TESTS/DATOS_READONLY/f_combobox.scx
new file mode 100644
index 0000000..3e537ab
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_combobox.scx differ
diff --git a/TESTS/DATOS_READONLY/f_commandgroup.sct b/TESTS/DATOS_READONLY/f_commandgroup.sct
new file mode 100644
index 0000000..a78652e
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_commandgroup.sct differ
diff --git a/TESTS/DATOS_READONLY/f_commandgroup.scx b/TESTS/DATOS_READONLY/f_commandgroup.scx
new file mode 100644
index 0000000..a9037b2
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_commandgroup.scx differ
diff --git a/TESTS/DATOS_READONLY/f_containers.sct b/TESTS/DATOS_READONLY/f_containers.sct
new file mode 100644
index 0000000..d78ebfd
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_containers.sct differ
diff --git a/TESTS/DATOS_READONLY/f_containers.scx b/TESTS/DATOS_READONLY/f_containers.scx
new file mode 100644
index 0000000..356d46c
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_containers.scx differ
diff --git a/TESTS/DATOS_READONLY/f_form_aa.sct b/TESTS/DATOS_READONLY/f_form_aa.sct
new file mode 100644
index 0000000..c7184f0
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_form_aa.sct differ
diff --git a/TESTS/DATOS_READONLY/f_form_aa.scx b/TESTS/DATOS_READONLY/f_form_aa.scx
new file mode 100644
index 0000000..57c92cb
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_form_aa.scx differ
diff --git a/TESTS/DATOS_READONLY/f_form_aa2.sct b/TESTS/DATOS_READONLY/f_form_aa2.sct
new file mode 100644
index 0000000..8d95d98
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_form_aa2.sct differ
diff --git a/TESTS/DATOS_READONLY/f_form_aa2.scx b/TESTS/DATOS_READONLY/f_form_aa2.scx
new file mode 100644
index 0000000..88eb688
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_form_aa2.scx differ
diff --git a/TESTS/DATOS_READONLY/f_form_controles.sct b/TESTS/DATOS_READONLY/f_form_controles.sct
new file mode 100644
index 0000000..bc106b1
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_form_controles.sct differ
diff --git a/TESTS/DATOS_READONLY/f_form_controles.scx b/TESTS/DATOS_READONLY/f_form_controles.scx
new file mode 100644
index 0000000..0aa5edc
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_form_controles.scx differ
diff --git a/TESTS/DATOS_READONLY/f_formset.sct b/TESTS/DATOS_READONLY/f_formset.sct
new file mode 100644
index 0000000..dcacc10
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_formset.sct differ
diff --git a/TESTS/DATOS_READONLY/f_formset.scx b/TESTS/DATOS_READONLY/f_formset.scx
new file mode 100644
index 0000000..40254d4
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_formset.scx differ
diff --git a/TESTS/DATOS_READONLY/f_listbox.sct b/TESTS/DATOS_READONLY/f_listbox.sct
new file mode 100644
index 0000000..4ff7174
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_listbox.sct differ
diff --git a/TESTS/DATOS_READONLY/f_listbox.scx b/TESTS/DATOS_READONLY/f_listbox.scx
new file mode 100644
index 0000000..7539a7f
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_listbox.scx differ
diff --git a/TESTS/DATOS_READONLY/f_optiongroup.sct b/TESTS/DATOS_READONLY/f_optiongroup.sct
new file mode 100644
index 0000000..99199f3
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_optiongroup.sct differ
diff --git a/TESTS/DATOS_READONLY/f_optiongroup.scx b/TESTS/DATOS_READONLY/f_optiongroup.scx
new file mode 100644
index 0000000..a6334e6
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_optiongroup.scx differ
diff --git a/TESTS/DATOS_READONLY/f_optiongroup2.sct b/TESTS/DATOS_READONLY/f_optiongroup2.sct
new file mode 100644
index 0000000..9cd109d
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_optiongroup2.sct differ
diff --git a/TESTS/DATOS_READONLY/f_optiongroup2.scx b/TESTS/DATOS_READONLY/f_optiongroup2.scx
new file mode 100644
index 0000000..45ccf2c
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_optiongroup2.scx differ
diff --git a/TESTS/DATOS_READONLY/f_test.sct b/TESTS/DATOS_READONLY/f_test.sct
new file mode 100644
index 0000000..563a6e3
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_test.sct differ
diff --git a/TESTS/DATOS_READONLY/f_test.scx b/TESTS/DATOS_READONLY/f_test.scx
new file mode 100644
index 0000000..51df291
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_test.scx differ
diff --git a/TESTS/DATOS_READONLY/f_textbox.sct b/TESTS/DATOS_READONLY/f_textbox.sct
new file mode 100644
index 0000000..23c1af9
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_textbox.sct differ
diff --git a/TESTS/DATOS_READONLY/f_textbox.scx b/TESTS/DATOS_READONLY/f_textbox.scx
new file mode 100644
index 0000000..a19e3e7
Binary files /dev/null and b/TESTS/DATOS_READONLY/f_textbox.scx differ
diff --git a/TESTS/DATOS_READONLY/fb2p_dbc.prg b/TESTS/DATOS_READONLY/fb2p_dbc.prg
new file mode 100644
index 0000000..8b104d5
--- /dev/null
+++ b/TESTS/DATOS_READONLY/fb2p_dbc.prg
@@ -0,0 +1,224 @@
+* *********************************************************************
+* *
+* * 2013/12/09 FB2P_DBC.DBC 22:32:26
+* *
+* *********************************************************************
+* *
+* * Description:
+* * This program was automatically generated by GenDBCX Version 1.1,
+* * a modified version of Microsoft's utility GenDBC Version 2.26.67.
+* *
+* *********************************************************************
+
+
+LPARAMETERS tcMethod
+LOCAL oDBC
+oDBC = CreateObject('GenDBCX')
+IF TYPE('oDBC') != 'O'
+ RETURN
+ENDIF
+cExactSet = SET('EXACT')
+SET EXACT ON
+IF EMPTY(tcMethod)
+ =oDBC.GenerateAll()
+ELSE
+ =EVALUATE('oDBC.' + tcMethod)
+ENDIF
+IF cExactSet = 'OFF'
+ SET EXACT OFF
+ENDIF
+
+
+DEFINE CLASS GenDBCX AS Custom
+ PROTECTED aTables[1]
+ PROTECTED nTables
+
+ PROCEDURE CustomProcess
+ *-- Your code goes here
+ ENDPROC
+
+ PROCEDURE Init
+ IF FILE('FB2P_DBC.DBC')
+ OPEN DATABASE FB2P_DBC.DBC
+ this.nTables = ADBOBJECTS(this.aTables, 'Table')
+ ENDIF
+ LOCAL ARRAY xx[1]
+ IF ADIR(xx,'*.DBC') > 0 OR ADIR(xx,'*.DBF') > 0
+ IF MessageBox('Warning! This program will overwrite your existing database and tables! Continue?', 308, 'GenDBCX Warning...') != 6
+ RETURN .F.
+ ENDIF
+ ENDIF
+ ENDPROC
+
+ PROCEDURE CreateDBC
+ *-- Create the Database Container
+ CLOSE DATA ALL
+ CREATE DATABASE 'FB2P_DBC.DBC'
+
+ ********* Procedure Re-Creation *********
+ IF !FILE([FB2P_DBC.krt])
+ ? [Warning! No Procedure File Found!]
+ ELSE
+ CLOSE DATABASE
+ USE 'FB2P_DBC.DBC'
+ g_SetSafety = SET('SAFETY')
+ SET SAFETY OFF
+ LOCATE FOR Objectname = 'StoredProceduresSource'
+ IF FOUND()
+ APPEND MEMO Code FROM [FB2P_DBC.krt] OVERWRITE
+ REPLACE Code WITH SUBSTR(Code, 70, 13140)
+ ENDIF
+ LOCATE FOR Objectname = 'StoredProceduresObject'
+ IF FOUND()
+ APPEND MEMO Code FROM [FB2P_DBC.krt] OVERWRITE
+ REPLACE Code WITH SUBSTR(Code, 13210)
+ ENDIF
+ IF UPPER(g_SetSafety) = 'ON'
+ SET SAFETY ON
+ ENDIF
+ USE
+ OPEN DATABASE [FB2P_DBC.DBC]
+ ENDIF
+
+ ENDPROC
+
+
+ **************************************************
+ ** Table setup for NOMBRELARGODELDBF
+ **************************************************
+ PROCEDURE tbNOMBRELARGODELDBF
+ LPARAMETERS tnPassNumber
+
+ DO CASE
+ CASE tnPassNumber = 1
+ =this.RemoveTable('NOMBRELARGODELDBF', 'C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DBF.DBF')
+
+ CREATE TABLE 'FB2P_DBF.DBF' NAME 'NOMBRELARGODELDBF' ( ;
+ NOMBRE C(30) NOT NULL CHECK .NOT.EMPTY(nombre) ERROR "El nombre está vacío" DEFAULT ".", ;
+ EDAD N(3, 0) NOT NULL, ;
+ ID I NOT NULL, ;
+ BIGTEXT M NOT NULL, ;
+ DEPTO C(10) NOT NULL ;
+ )
+ ***** Create each index for NOMBRELARGODELDBF *****
+ SET COLLATE TO 'MACHINE'
+ ALTER TABLE 'NOMBRELARGODELDBF' ADD PRIMARY KEY ID TAG ID
+ SET COLLATE TO 'GENERAL'
+ INDEX ON NOMBRE TAG I_NOMBRE
+ SET COLLATE TO 'MACHINE'
+ INDEX ON DEPTO TAG DEPTO
+
+ CASE tnPassNumber = 2
+ ***** Change properties for NOMBRELARGODELDBF *****
+ DBSetProp('NOMBRELARGODELDBF.NOMBRE', 'Field', 'Caption', "'Nombre:'")
+ DBSetProp('NOMBRELARGODELDBF.NOMBRE', 'Field', 'Comment', "Comentario de 'Nombre'")
+ DBSetProp('NOMBRELARGODELDBF.NOMBRE', 'Field', 'InputMask', "!XXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
+ DBSetProp('NOMBRELARGODELDBF.NOMBRE', 'Field', 'Format', "A")
+ DBSetProp('NOMBRELARGODELDBF', 'Table', 'Comment', "Comentario de la tabla 'fb2p_dbf'")
+ CREATE TRIGGER ON 'NOMBRELARGODELDBF' FOR DELETE AS del_trg()
+ CREATE TRIGGER ON 'NOMBRELARGODELDBF' FOR INSERT AS __ri_insert_nombrelargodeldbf().AND.(ins_trg())
+ CREATE TRIGGER ON 'NOMBRELARGODELDBF' FOR UPDATE AS __ri_update_nombrelargodeldbf().AND.(upd_trg())
+ ALTER TABLE 'NOMBRELARGODELDBF' SET CHECK edad>10 ERROR "Mensaje de error de la regla edad > 10"
+ ENDCASE
+ ENDPROC
+
+
+ **************************************************
+ ** Table setup for FB2P_DEPTO
+ **************************************************
+ PROCEDURE tbFB2P_DEPTO
+ LPARAMETERS tnPassNumber
+
+ DO CASE
+ CASE tnPassNumber = 1
+ =this.RemoveTable('FB2P_DEPTO', 'C:\DESA\FOXBIN2PRG\TESTS\DATOS_READONLY\FB2P_DEPTO.DBF')
+
+ CREATE TABLE 'FB2P_DEPTO.DBF' NAME 'FB2P_DEPTO' ( ;
+ DEPTO C(10) NOT NULL, ;
+ DESCRIP C(50) NOT NULL ;
+ )
+ ***** Create each index for FB2P_DEPTO *****
+ SET COLLATE TO 'MACHINE'
+ ALTER TABLE 'FB2P_DEPTO' ADD PRIMARY KEY DEPTO TAG DEPTO
+
+ CASE tnPassNumber = 2
+ ***** Change properties for FB2P_DEPTO *****
+ DBSetProp('FB2P_DEPTO', 'Table', 'Comment', "Comentario de 'fb2p_depto'")
+ CREATE TRIGGER ON 'FB2P_DEPTO' FOR DELETE AS __ri_delete_fb2p_depto()
+ ENDCASE
+ ENDPROC
+
+
+ ***** Relations Setup *****
+ PROCEDURE SetRelations
+ ALTER TABLE 'NOMBRELARGODELDBF' ADD FOREIGN KEY TAG DEPTO REFERENCES FB2P_DEPTO TAG DEPTO
+ ENDPROC
+
+ ***** Referential Integrity Setup *****
+ PROCEDURE SetRI
+ CLOSE DATABASE
+ USE 'FB2P_DBC.DBC'
+ LOCATE FOR ObjectType = 'Table' AND UPPER(ALLTRIM(ObjectName)) == 'NOMBRELARGODELDBF'
+ IF FOUND()
+ nObjectID = ObjectID
+ LOCATE FOR ObjectType = 'Relation' AND 'depto'$Property AND 'fb2p_depto'$Property AND 'depto'$Property AND ParentID = nObjectID
+ IF FOUND()
+ REPLACE RiInfo WITH 'ICR '
+ ELSE
+ ? "Could not set RI Information, line " + ltrim(str(lineno()))
+ ENDIF
+ ENDIF
+ USE
+ ENDPROC
+
+ FUNCTION RemoveTable(tcTable, tcFile)
+ LOCAL ARRAY laTables[1]
+ =ADBOBJECTS(laTables,'Table')
+ IF ASCAN(laTables,tcTable) = 0
+ *-- No such table in the current dbc, nothing to do!
+ RETURN .t.
+ ENDIF
+ IF !FILE(tcFile)
+ *-- If the file has been erased, REMOVE TABLE fails with a 'File does not
+ *-- exist' error, because it can't find the file to either remove its
+ *-- database reference or delete the file .
+ *-- We'll work around this problem by creating a phony file with the same
+ *-- name, and use REMOVE TABLE DELETE to both remove the table reference
+ *-- in the dbc, and erase the phony file.
+ LOCAL lhFile
+ lhFile = FCREATE(tcFile)
+ IF lhFile = -1
+ RETURN .f.
+ ENDIF
+ =FCLOSE(lhFile)
+ ENDIF
+ REMOVE TABLE (tcTable) DELETE
+ =ADBOBJECTS(laTables,'Table')
+ RETURN ASCAN(laTables,tcTable) = 0
+ ENDFUNC
+
+
+ PROCEDURE GenerateAll
+ =this.CreateDBC()
+ =this.CreateTables()
+
+ *-- Call custom method
+ =this.CustomProcess()
+
+ =this.RulesTriggersProperties()
+ =this.SetRelations()
+ =this.SetRI()
+ ENDPROC
+
+ PROCEDURE CreateTables
+ *-- Create Tables
+ =this.tbNOMBRELARGODELDBF(1)
+ =this.tbFB2P_DEPTO(1)
+ ENDPROC
+
+ PROCEDURE RulesTriggersProperties
+ *-- Finish Tables (add rules/triggers/properties)
+ =this.tbNOMBRELARGODELDBF(2)
+ =this.tbFB2P_DEPTO(2)
+ ENDPROC
+ENDDEFINE
diff --git a/TESTS/DATOS_READONLY/fb2p_frm_1.sc2 b/TESTS/DATOS_READONLY/fb2p_frm_1.sc2
index 06a360a..9dd38d0 100644
--- a/TESTS/DATOS_READONLY/fb2p_frm_1.sc2
+++ b/TESTS/DATOS_READONLY/fb2p_frm_1.sc2
@@ -2,12 +2,42 @@
* (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
-*< FOXBIN2PRG: Version="1.19" SourceFile="C:\DESA\foxbin2prg\TESTS\DATOS_READONLY\fb2p_frm_1.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
+*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_frm_1.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
-*< OLE: Nombre="Cl_form1.Cl_olecontrol1" Parent="Cl_form1" ObjName="Cl_olecontrol1" OLEObject="C:\Windows\system32\richtx32.ocx" Checksum="617849590" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBjW5n1Hc8BAwAAAIACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABPAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAOAAAAAAAAAABAAAAAIAAAD+////BQAAAAYAAAAIAAAABwAAAP7///8JAAAA/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9giHw7j9cbELm1BAIcAJQCIUM0EggAAACKDQAA7QYAACFDNBIBAAYArAAAAAAA//8AAP////8AAAAAAAAAAAAATwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcWhqIFp0dVFoYTtqZGZuW2lhZXRyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACACwAAAEFwcGVhcmFuY2UACQAAAEkKAAAAAAAAAAwAAABCb3JkZXJTdHlsZQAJAAAASQoAAAABAAAADQAAAAAAAAUAAIAAAAAAAAABAAAAAAABAAIACAAAAHtccnRmMVxhbnNpXGFuc2ljcGcxMjUyXGRlZmYwe1xmb250dABCdWxsZXRJbmRlbnQAEQAAAE4NAAAABwAAAAAAAAAAAAAAEAAAAERpc2FibGVOb1Njcm9sbAAFAAAATAAAAABibHtcZjBcZm5pbFxmY2hhcnNldDAgQXJpYWw7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcbGFuZzMwODJcZnMxOCBPbGVjb250cm9sMQ0KXHBhciB9DQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABSaWdodE1hcmdpbgARAAAATg0AAAAHAAAAAAAAAAAAAAAFAAAAVGV4dAAUAAAASAAAAAALAAAAT2xlY29udHJvbDENAAAAQXV0b1ZlcmJNZW51AAUAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" />
+
*
-DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
- *< CLASSDATA: Baseclass="form" Timestamp="2014/01/30 20:58:05" Scale="" Uniqueid="_3XW0B1R2O" />
+#INCLUDE "..\..\include\principal.h"
+
+DEFINE CLASS cl_form1 AS cl_form OF "fb2p_test.vcx"
+ *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" />
+
+ *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
+ *< OBJECTDATA: ObjPath="Shape1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="txtPromotor" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="lblPromotor" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="txtIdenc" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="lblIdenc" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="txtCalific" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="lblCalific" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="txtFecha" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="lblFecha" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="txtResultado" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="lblResultado" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column1.Header1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column1.Text1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column2.Header1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column2.Text1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column3.Header1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column3.Text1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column4.Header1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column4.Text1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column5.Header1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="grdEncuestas.Column5.Text1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="Commandgroup1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="Optiongroup1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="Cl_olecontrol1" UniqueID="" Timestamp="" />
+
AllowOutput = .T.
AlwaysOnBottom = .F.
AlwaysOnTop = .F.
@@ -66,12 +96,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
MouseIcon = ..\..\
MousePointer = 0
Movable = .T.
- Name = "Cl_form1"
+ Name = "cl_form1"
OLEDragMode = 0
OLEDragPicture = ..\..\
OLEDropEffects = 3
OLEDropMode = 0
- Picture = ..\..\
+ Picture = bmps\fondogris.bmp
RightToLeft = .F.
ScaleMode = 3
ScrollBars = 0
@@ -133,7 +163,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Name = "Cl_olecontrol1", ;
Top = 256, ;
Width = 131
- *< END OBJECT: ClassLib="fb2p_test.vcx" BaseClass="olecontrol" UniqueID="_3XW0BXGCR" Timestamp="2013/12/03 20:18:24" ZOrder="2900" OLEObject="C:\Windows\system32\richtx32.ocx" CheckSum="617849590" />
+ *< END OBJECT: ClassLib="fb2p_test.vcx" BaseClass="olecontrol" Nombre="cl_form1.Cl_olecontrol1" Parent="cl_form1" ObjName="Cl_olecontrol1" OLEObject="C:\Windows\system32\richtx32.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC9jhY4as8BAwAAAIACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABPAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAOAAAAAAAAAABAAAAAIAAAD+////BQAAAAYAAAAIAAAABwAAAP7///8JAAAA/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9giHw7j9cbELm1BAIcAJQCIUM0EggAAACKDQAA7QYAACFDNBIBAAYArAAAAAAA//8AAP////8AAAAAAAAAAAAATwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcWhqIFp0dVFoYTtqZGZuW2lhZXRyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACACwAAAEFwcGVhcmFuY2UACQAAAEkKAAAAAAAAAAwAAABCb3JkZXJTdHlsZQAJAAAASQoAAAABAAAADQAAAAAAAAUAAIAAAAAAAAABAAAAAAABAAIACAAAAHtccnRmMVxhbnNpXGFuc2ljcGcxMjUyXGRlZmYwe1xmb250dABCdWxsZXRJbmRlbnQAEQAAAE4NAAAABwAAAAAAAAAAAAAAEAAAAERpc2FibGVOb1Njcm9sbAAFAAAATAAAAABibHtcZjBcZm5pbFxmY2hhcnNldDAgQXJpYWw7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcbGFuZzMwODJcZnMxOCBPbGVjb250cm9sMQ0KXHBhciB9DQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABSaWdodE1hcmdpbgARAAAATg0AAAAHAAAAAAAAAAAAAAAFAAAAVGV4dAAUAAAASAAAAAALAAAAT2xlY29udHJvbDENAAAAQXV0b1ZlcmJNZW51AAUAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" />
ADD OBJECT 'Commandgroup1' AS commandgroup WITH ;
BackColor = 255,128,255, ;
@@ -161,7 +191,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Command2.RightToLeft = .F., ;
Command2.Top = 8, ;
Command2.Width = 96
- *< END OBJECT: BaseClass="commandgroup" UniqueID="_3XW0BCM76" Timestamp="2013/12/03 20:18:24" ZOrder="2700" />
+ *< END OBJECT: BaseClass="commandgroup" />
ADD OBJECT 'grdEncuestas' AS grid WITH ;
ColumnCount = 5, ;
@@ -197,12 +227,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Column5.Name = "Column5", ;
Column5.ReadOnly = .T., ;
Column5.Width = 58
- *< END OBJECT: BaseClass="grid" UniqueID="_3XW0B58PA" Timestamp="2013/12/15 18:50:25" ZOrder="1600" />
+ *< END OBJECT: BaseClass="grid" />
ADD OBJECT 'grdEncuestas.Column1.Header1' AS header WITH ;
Caption = "promotor", ;
Name = "Header1"
- *< END OBJECT: BaseClass="header" UniqueID="_3XW0B58PB" Timestamp="2013/12/03 19:56:18" ZOrder="1700" />
+ *< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdEncuestas.Column1.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
@@ -212,12 +242,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Name = "Text1", ;
ReadOnly = .T., ;
RightToLeft = .F.
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58PC" Timestamp="2013/12/15 18:50:25" ZOrder="1800" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdEncuestas.Column2.Header1' AS header WITH ;
Caption = "idenc", ;
Name = "Header1"
- *< END OBJECT: BaseClass="header" UniqueID="_3XW0B58PD" Timestamp="2013/12/03 19:56:18" ZOrder="1900" />
+ *< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdEncuestas.Column2.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
@@ -227,12 +257,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Name = "Text1", ;
ReadOnly = .T., ;
RightToLeft = .F.
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58PE" Timestamp="2013/12/15 18:50:25" ZOrder="2000" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdEncuestas.Column3.Header1' AS header WITH ;
Caption = "calific", ;
Name = "Header1"
- *< END OBJECT: BaseClass="header" UniqueID="_3XW0B58PF" Timestamp="2013/12/03 19:56:18" ZOrder="2100" />
+ *< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdEncuestas.Column3.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
@@ -242,12 +272,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Name = "Text1", ;
ReadOnly = .T., ;
RightToLeft = .F.
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58PG" Timestamp="2013/12/15 18:50:25" ZOrder="2200" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdEncuestas.Column4.Header1' AS header WITH ;
Caption = "fecha", ;
Name = "Header1"
- *< END OBJECT: BaseClass="header" UniqueID="_3XW0B58PH" Timestamp="2013/12/03 19:56:18" ZOrder="2300" />
+ *< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdEncuestas.Column4.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
@@ -257,12 +287,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Name = "Text1", ;
ReadOnly = .T., ;
RightToLeft = .F.
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58PI" Timestamp="2013/12/15 18:50:25" ZOrder="2400" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdEncuestas.Column5.Header1' AS header WITH ;
Caption = "resultado", ;
Name = "Header1"
- *< END OBJECT: BaseClass="header" UniqueID="_3XW0B58PJ" Timestamp="2013/12/03 19:56:18" ZOrder="2500" />
+ *< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdEncuestas.Column5.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
@@ -272,7 +302,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Name = "Text1", ;
ReadOnly = .T., ;
RightToLeft = .F.
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58PK" Timestamp="2013/12/15 18:50:25" ZOrder="2600" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'lblCalific' AS label WITH ;
AutoSize = .T., ;
@@ -286,7 +316,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Width = 34, ;
WordWrap = .T., ;
ZOrderSet = 10
- *< END OBJECT: BaseClass="label" UniqueID="_3XW0B58P5" Timestamp="2013/12/15 18:50:25" ZOrder="1100" />
+ *< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblFecha' AS label WITH ;
AutoSize = .T., ;
@@ -300,7 +330,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Width = 34, ;
WordWrap = .T., ;
ZOrderSet = 12
- *< END OBJECT: BaseClass="label" UniqueID="_3XW0B58P7" Timestamp="2013/12/15 18:50:25" ZOrder="1300" />
+ *< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblIdenc' AS label WITH ;
AutoSize = .T., ;
@@ -314,7 +344,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Width = 30, ;
WordWrap = .T., ;
ZOrderSet = 8
- *< END OBJECT: BaseClass="label" UniqueID="_3XW0B58P3" Timestamp="2013/12/15 18:50:25" ZOrder="900" />
+ *< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblPromotor' AS label WITH ;
AutoSize = .T., ;
@@ -328,7 +358,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Width = 51, ;
WordWrap = .T., ;
ZOrderSet = 6
- *< END OBJECT: BaseClass="label" UniqueID="_3XW0B58P1" Timestamp="2013/12/15 18:50:25" ZOrder="700" />
+ *< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblResultado' AS label WITH ;
AutoSize = .T., ;
@@ -342,7 +372,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Width = 57, ;
WordWrap = .T., ;
ZOrderSet = 14
- *< END OBJECT: BaseClass="label" UniqueID="_3XW0B58P9" Timestamp="2013/12/15 18:50:25" ZOrder="1500" />
+ *< END OBJECT: BaseClass="label" />
ADD OBJECT 'Optiongroup1' AS optiongroup WITH ;
BackColor = 0,128,255, ;
@@ -374,7 +404,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Option2.Top = 12, ;
Option2.Value = 1, ;
Option2.Width = 88
- *< END OBJECT: BaseClass="optiongroup" UniqueID="_3XW0BCM77" Timestamp="2013/12/03 20:18:24" ZOrder="2800" />
+ *< END OBJECT: BaseClass="optiongroup" />
ADD OBJECT 'Shape1' AS shape WITH ;
BorderStyle = 2, ;
@@ -387,7 +417,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Top = 284, ;
Width = 101, ;
ZOrderSet = 0
- *< END OBJECT: BaseClass="shape" UniqueID="_3XW0BQM70" Timestamp="2013/12/03 20:18:24" ZOrder="500" />
+ *< END OBJECT: BaseClass="shape" />
ADD OBJECT 'txtCalific' AS textbox WITH ;
Comment = "", ;
@@ -404,7 +434,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Top = 164, ;
Width = 38, ;
ZOrderSet = 9
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58P4" Timestamp="2013/12/15 18:50:25" ZOrder="1000" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtFecha' AS textbox WITH ;
Comment = "", ;
@@ -420,7 +450,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Top = 192, ;
Width = 73, ;
ZOrderSet = 11
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58P6" Timestamp="2013/12/15 18:50:25" ZOrder="1200" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtIdenc' AS textbox WITH ;
Comment = "", ;
@@ -437,7 +467,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Top = 192, ;
Width = 149, ;
ZOrderSet = 7
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58P2" Timestamp="2013/12/15 18:50:25" ZOrder="800" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtPromotor' AS textbox WITH ;
Comment = "", ;
@@ -454,7 +484,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Top = 164, ;
Width = 149, ;
ZOrderSet = 5
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58P0" Timestamp="2013/12/15 18:50:25" ZOrder="600" />
+ *< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtResultado' AS textbox WITH ;
Comment = "", ;
@@ -471,7 +501,7 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
Top = 220, ;
Width = 81, ;
ZOrderSet = 13
- *< END OBJECT: BaseClass="textbox" UniqueID="_3XW0B58P8" Timestamp="2013/12/15 18:50:25" ZOrder="1400" />
+ *< END OBJECT: BaseClass="textbox" />
PROCEDURE grdEncuestas.AfterRowColChange
LPARAMETERS nColIndex
@@ -482,8 +512,12 @@ DEFINE CLASS Cl_form1 AS cl_form OF "fb2p_test.vcx"
ENDDEFINE
-DEFINE CLASS Dataenvironment AS dataenvironment
- *< CLASSDATA: Baseclass="dataenvironment" Timestamp="2014/01/30 20:58:05" Scale="" Uniqueid="_3XW0B1R2N" ClassIcon="1" />
+DEFINE CLASS dataenvironment AS dataenvironment
+ *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" />
+
+ *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
+ *< OBJECTDATA: ObjPath="Cursor1" UniqueID="" Timestamp="" />
+
AutoCloseTables = .T.
AutoOpenTables = .T.
Comment = ""
@@ -500,31 +534,17 @@ DEFINE CLASS Dataenvironment AS dataenvironment
ADD OBJECT 'Cursor1' AS cursor WITH ;
Alias = "encuestas", ;
- BufferModeOverride = 1, ;
- Comment = "", ;
CursorSource = encuestas.dbf, ;
- Exclusive = .F., ;
- Filter = "", ;
- Height = 98, ;
+ Height = 90, ;
Left = 10, ;
Name = "Cursor1", ;
- NoDataOnLoad = .F., ;
- Order = "", ;
- OrderDirection = 0, ;
- ReadOnly = .F., ;
- Tag = "", ;
Top = 20, ;
- Width = 102
- *< END OBJECT: BaseClass="cursor" UniqueID="_3XW0B58OZ" Timestamp="2014/01/30 20:58:05" ZOrder="300" />
+ Width = 90
+ *< END OBJECT: BaseClass="cursor" />
PROCEDURE BeforeOpenTables
*-- Comentario en método [Dataenvironment.BeforeOpenTables]
ENDPROC
- PROCEDURE Cursor1.Init
- *-- Comentario en método [Dataenvironment.Cursor1.Init]
-
- ENDPROC
-
ENDDEFINE
diff --git a/TESTS/DATOS_READONLY/fb2p_frm_1.sct b/TESTS/DATOS_READONLY/fb2p_frm_1.sct
index e948eac..0aa742d 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_frm_1.sct and b/TESTS/DATOS_READONLY/fb2p_frm_1.sct differ
diff --git a/TESTS/DATOS_READONLY/fb2p_frm_1.scx b/TESTS/DATOS_READONLY/fb2p_frm_1.scx
index 8be9bfa..3813f51 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_frm_1.scx and b/TESTS/DATOS_READONLY/fb2p_frm_1.scx differ
diff --git a/TESTS/DATOS_READONLY/fb2p_frm_2.sc2 b/TESTS/DATOS_READONLY/fb2p_frm_2.sc2
index 9894332..74c0cc8 100644
--- a/TESTS/DATOS_READONLY/fb2p_frm_2.sc2
+++ b/TESTS/DATOS_READONLY/fb2p_frm_2.sc2
@@ -2,11 +2,12 @@
* (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
-*< FOXBIN2PRG: Version="1.19" SourceFile="C:\DESA\foxbin2prg\TESTS\DATOS_READONLY\FB2P_FRM_2.SCX" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
+*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_frm_2.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
-DEFINE CLASS Dataenvironment AS dataenvironment
- *< CLASSDATA: Baseclass="dataenvironment" Timestamp="2013/12/03 19:54:07" Scale="" Uniqueid="_3XW0B26O0" ClassIcon="1" />
+DEFINE CLASS dataenvironment AS dataenvironment
+ *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" />
+
DataSource = .NULL.
Height = 0
Left = 0
@@ -16,13 +17,20 @@ DEFINE CLASS Dataenvironment AS dataenvironment
ENDDEFINE
-DEFINE CLASS Form1 AS form
- *< CLASSDATA: Baseclass="form" Timestamp="2014/02/03 19:55:29" Scale="" Uniqueid="_3XW0B26O1" />
+DEFINE CLASS form1 AS form
+ *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" />
+
+ *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
+ *< OBJECTDATA: ObjPath="Commandgroup1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="Pageframe1" UniqueID="" Timestamp="" />
+ *< OBJECTDATA: ObjPath="Optiongroup1" UniqueID="" Timestamp="" />
+
*
*p: a_otra
- *a: ^a_prop[1,0] && array
+ *a: a_prop[1,0] && array
*p: _prop
*
+
AllowOutput = .T.
AlwaysOnBottom = .F.
AlwaysOnTop = .F.
@@ -65,7 +73,7 @@ DEFINE CLASS Form1 AS form
HScrollSmallChange = 10
Icon = ..\..\
KeyPreview = .F.
- Left = 0
+ Left = 2
LockScreen = .F.
MacDesktop = 0
MaxButton = .T.
@@ -96,7 +104,7 @@ DEFINE CLASS Form1 AS form
Tag = ""
Themes = .T.
TitleBar = 1
- Top = 0
+ Top = 1
Visible = .T.
VScrollSmallChange = 10
WhatsThisButton = .F.
@@ -177,7 +185,7 @@ DEFINE CLASS Form1 AS form
Command3.Name = "Command3", ;
Command3.Top = 63, ;
Command3.Width = 84
- *< END OBJECT: BaseClass="commandgroup" UniqueID="_3Y813WLQU" Timestamp="2014/02/03 19:55:29" ZOrder="400" />
+ *< END OBJECT: BaseClass="commandgroup" />
ADD OBJECT 'Optiongroup1' AS optiongroup WITH ;
ButtonCount = 3, ;
@@ -207,7 +215,7 @@ DEFINE CLASS Form1 AS form
Option3.Name = "Option3", ;
Option3.Top = 43, ;
Option3.Width = 61
- *< END OBJECT: BaseClass="optiongroup" UniqueID="_3ZO00KYM8" Timestamp="2014/02/03 19:55:29" ZOrder="600" />
+ *< END OBJECT: BaseClass="optiongroup" />
ADD OBJECT 'Pageframe1' AS pageframe WITH ;
ActivePage = 2, ;
@@ -224,6 +232,6 @@ DEFINE CLASS Form1 AS form
Page2.Name = "Page2", ;
Page3.Caption = "Page3", ;
Page3.Name = "Page3"
- *< END OBJECT: BaseClass="pageframe" UniqueID="_3ZO00KYM7" Timestamp="2014/02/03 19:55:29" ZOrder="500" />
+ *< END OBJECT: BaseClass="pageframe" />
ENDDEFINE
diff --git a/TESTS/DATOS_READONLY/fb2p_frm_2.sct b/TESTS/DATOS_READONLY/fb2p_frm_2.sct
index 7523192..5638dcd 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_frm_2.sct and b/TESTS/DATOS_READONLY/fb2p_frm_2.sct differ
diff --git a/TESTS/DATOS_READONLY/fb2p_frm_2.scx b/TESTS/DATOS_READONLY/fb2p_frm_2.scx
index 74aad01..3623de9 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_frm_2.scx and b/TESTS/DATOS_READONLY/fb2p_frm_2.scx differ
diff --git a/TESTS/DATOS_READONLY/fb2p_test.pjt b/TESTS/DATOS_READONLY/fb2p_test.pjt
index b44124a..f88d1fa 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_test.pjt and b/TESTS/DATOS_READONLY/fb2p_test.pjt differ
diff --git a/TESTS/DATOS_READONLY/fb2p_test.pjx b/TESTS/DATOS_READONLY/fb2p_test.pjx
index baaabd2..8ef0695 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_test.pjx and b/TESTS/DATOS_READONLY/fb2p_test.pjx differ
diff --git a/TESTS/DATOS_READONLY/fb2p_test.vc2 b/TESTS/DATOS_READONLY/fb2p_test.vc2
index 13c10dd..18ff8b2 100644
--- a/TESTS/DATOS_READONLY/fb2p_test.vc2
+++ b/TESTS/DATOS_READONLY/fb2p_test.vc2
@@ -5,10 +5,13 @@
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_test.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
+*
+*< LIBCOMMENT: Comentario principal de "fb2p_test.vcx" />
*
DEFINE CLASS cl_commandgroup AS commandgroup && Descripción de cl_CommandGroup
*< CLASSDATA: Baseclass="commandgroup" Timestamp="" Scale="Pixels" Uniqueid="" />
+ #INCLUDE "..\..\include\principal.h"
*
*p: una_prop_cmgroup && Con comentario, pero sin valor
*
@@ -46,13 +49,13 @@ DEFINE CLASS cl_form AS form OLEPUBLIC && mi OLE server DLL
*
*p: chidden && Prop.Hidden
*p: cprotected && Prop.Protegida
- *a: ^ahidden[1,0] && Array Oculto
- *a: ^aprotected[1,0] && Array Protegido
+ *a: ahidden[1,0] && Array Oculto
+ *a: aprotected[1,0] && Array Protegido
*p: _memberdata && XML Metadata for customizable properties
*
- HIDDEN chidden
- PROTECTED cprotected
+ HIDDEN chidden,ahidden
+ PROTECTED cprotected,aprotected
Caption = "Form"
chidden = && Prop.Hidden
cprotected = && Prop.Protegida
@@ -60,6 +63,7 @@ DEFINE CLASS cl_form AS form OLEPUBLIC && mi OLE server DLL
Height = 345
Left = 0
Name = "cl_form"
+ Picture = bmps\scccheckout.bmp
Top = 0
Width = 570
_memberdata =
@@ -153,7 +157,7 @@ DEFINE CLASS cl_imagen AS image OLEPUBLIC && otro ole
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*
- *m: *un_metodo_de_clase && Para testear si el código se va a la clase cl_form
+ *m: un_metodo_de_clase && Para testear si el código se va a la clase cl_form
*
Height = 16
@@ -180,8 +184,8 @@ DEFINE CLASS cl_optiongroup AS optiongroup && descripcion
*< CLASSDATA: Baseclass="optiongroup" Timestamp="" Scale="Pixels" Uniqueid="" />
*
- *m: *propiedad_de_clase_con_valor_access
- *m: *propiedad_de_clase_con_valor_assign
+ *m: propiedad_de_clase_con_valor_access
+ *m: propiedad_de_clase_con_valor_assign
*p: propiedad_de_clase_con_valor && Tiene un valor por defecto
*p: propiedad_de_clase_sin_valor && Una propiedad sin valor para heredar
*
diff --git a/TESTS/DATOS_READONLY/fb2p_test.vct b/TESTS/DATOS_READONLY/fb2p_test.vct
index a112e25..b6955e7 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_test.vct and b/TESTS/DATOS_READONLY/fb2p_test.vct differ
diff --git a/TESTS/DATOS_READONLY/fb2p_test.vcx b/TESTS/DATOS_READONLY/fb2p_test.vcx
index e63441a..bac14b3 100644
Binary files a/TESTS/DATOS_READONLY/fb2p_test.vcx and b/TESTS/DATOS_READONLY/fb2p_test.vcx differ
diff --git a/TESTS/DATOS_READONLY/fcl_optiongroup.sct b/TESTS/DATOS_READONLY/fcl_optiongroup.sct
new file mode 100644
index 0000000..c0e2cc2
Binary files /dev/null and b/TESTS/DATOS_READONLY/fcl_optiongroup.sct differ
diff --git a/TESTS/DATOS_READONLY/fcl_optiongroup.scx b/TESTS/DATOS_READONLY/fcl_optiongroup.scx
new file mode 100644
index 0000000..26eb742
Binary files /dev/null and b/TESTS/DATOS_READONLY/fcl_optiongroup.scx differ
diff --git a/TESTS/DATOS_READONLY/lib_controles.vct b/TESTS/DATOS_READONLY/lib_controles.vct
new file mode 100644
index 0000000..8a748bb
Binary files /dev/null and b/TESTS/DATOS_READONLY/lib_controles.vct differ
diff --git a/TESTS/DATOS_READONLY/lib_controles.vcx b/TESTS/DATOS_READONLY/lib_controles.vcx
new file mode 100644
index 0000000..9df962d
Binary files /dev/null and b/TESTS/DATOS_READONLY/lib_controles.vcx differ
diff --git a/TESTS/DATOS_READONLY/lib_controles2.vct b/TESTS/DATOS_READONLY/lib_controles2.vct
new file mode 100644
index 0000000..725cf64
Binary files /dev/null and b/TESTS/DATOS_READONLY/lib_controles2.vct differ
diff --git a/TESTS/DATOS_READONLY/lib_controles2.vcx b/TESTS/DATOS_READONLY/lib_controles2.vcx
new file mode 100644
index 0000000..e802f54
Binary files /dev/null and b/TESTS/DATOS_READONLY/lib_controles2.vcx differ
diff --git a/TESTS/FoxPro9_Order_for_Control_Properties.xlsx b/TESTS/FoxPro9_Order_for_Control_Properties.xlsx
new file mode 100644
index 0000000..2f28b9b
Binary files /dev/null and b/TESTS/FoxPro9_Order_for_Control_Properties.xlsx differ
diff --git a/TESTS/PCT_DLL.dll b/TESTS/PCT_DLL.dll
new file mode 100644
index 0000000..4ef5959
Binary files /dev/null and b/TESTS/PCT_DLL.dll differ
diff --git a/TESTS/fxu_lib_objetos_y_funciones_de_soporte.prg b/TESTS/fxu_lib_objetos_y_funciones_de_soporte.prg
index f12c2be..858db86 100644
--- a/TESTS/fxu_lib_objetos_y_funciones_de_soporte.prg
+++ b/TESTS/fxu_lib_objetos_y_funciones_de_soporte.prg
@@ -4,6 +4,46 @@
*----------------------------------------------------------------------------------------
+
+FUNCTION TaskBarHeight
+ DECLARE INTEGER GetWindowRect IN user32;
+ INTEGER HWND, STRING lpRect
+ DECLARE INTEGER FindWindow IN user32;
+ STRING lpClassName,;
+ STRING lpWindowName
+
+ LOCAL cBuffer
+ cBuffer = REPLICATE(CHR(0), 16)
+ hWindow= FindWindow('Shell_TrayWnd', '')
+ cRect = GetWinRect(hWindow)
+ RETURN TRANSFORM( buf2dword( SUBSTR(cRect, 13,4)) - buf2dword( SUBSTR(cRect, 5,4) ) )
+ENDFUNC
+
+
+FUNCTION GetWinRect(hWindow)
+ LOCAL cBuffer
+ cBuffer = REPLICATE(CHR(0), 16)
+ = GetWindowRect(hWindow, @cBuffer)
+ RETURN cBuffer
+ENDFUNC
+
+
+FUNCTION buf2dword(lcBuffer)
+ RETURN ASC(SUBSTR(lcBuffer, 1,1)) + ;
+ BITLSHIFT(ASC(SUBSTR(lcBuffer, 2,1)), 8) +;
+ BITLSHIFT(ASC(SUBSTR(lcBuffer, 3,1)), 16) +;
+ BITLSHIFT(ASC(SUBSTR(lcBuffer, 4,1)), 24)
+ENDFUNC
+
+
+DEFINE CLASS cl_Column AS Column
+ENDDEFINE
+
+
+DEFINE CLASS cl_Header AS Header
+ENDDEFINE
+
+
DEFINE CLASS CL_FXU_CONFIG AS CUSTOM
#IF .F.
LOCAL THIS AS CL_FXU_CONFIG OF 'fxu_lib_objetos_y_funciones_de_soporte.PRG'
@@ -27,12 +67,12 @@ DEFINE CLASS CL_FXU_CONFIG AS CUSTOM
cPathDatosReadOnly = 'TESTS\DATOS_READONLY'
cPathDatosTest = 'TESTS\DATOS_TEST'
cSetDate = ''
-
+
*----------------------------------------------------------------------------------------
PROCEDURE INIT
THIS.cSetDate = SET("Date")
-
+
SET DATE TO YMD
SET HOURS TO 24
SET SAFETY OFF
@@ -66,7 +106,7 @@ DEFINE CLASS CL_FXU_CONFIG AS CUSTOM
*----------------------------------------------------------------------------------------
PROCEDURE copiarArchivosParaTest
LPARAMETERS tcFileSpec
-
+
COPY FILE (FORCEPATH( tcFileSpec, THIS.cPathDatosReadOnly )) TO (FORCEPATH( tcFileSpec, THIS.cPathDatosTest ))
ENDPROC
diff --git a/TESTS/pct_dll.txt b/TESTS/pct_dll.txt
new file mode 100644
index 0000000..00ebe70
--- /dev/null
+++ b/TESTS/pct_dll.txt
@@ -0,0 +1,22 @@
+* http://www.tek-tips.com/viewthread.cfm?qid=769626
+* ftp://tek-tips:tek-tips@69.14.191.20/tek-tips/pct_dll/pct_dll.zip
+
+lcWallpaper="C:\Documents and Settings\brian\My Documents\My Pictures\Img_0011.jpg"
+
+Declare Integer tobmp IN "PCT_DLL.dll" ;
+String jpgfilename, String bmpfilename
+
+retval = tobmp(lcWallpaper,JUSTPATH(lcWallpaper)+"\"+JUSTSTEM(lcWallpaper)+".bmp")
+
+lcWallpaper=JUSTPATH(lcWallpaper)+"\"+JUSTSTEM(lcWallpaper)+".bmp"
+
+DO JpgWallPaper WITH lcWallpaper
+
+PROCEDURE JpgWallPaper
+ PARAMETERS lcWallpaper
+ DECLARE INTEGER SystemParametersInfo IN WIN32API ;
+ INTEGER uiAction, INTEGER uiParam,;
+ STRING @pvParam, INTEGER fWinIni
+
+ SystemParametersInfo (20 , 0, @lcWallpaper, 3)
+ENDPROC
diff --git a/TESTS/readme.txt b/TESTS/readme.txt
new file mode 100644
index 0000000..ecc07b1
--- /dev/null
+++ b/TESTS/readme.txt
@@ -0,0 +1,201 @@
+
+Last year, I've spend a lot of time to develop a picture treatment dll, there are 6 functions in this dll,
+they are:
+
+1 formtobmp
+2 formtobmpA
+3 tojpeg
+4 tobmp
+5 getbmpdimension
+6 getjpgdimension
+
+In this paper, I'll simply explain their functionality, parameters and how to use them.
+
+Anybody who need source code of this dll, please email to njjane@21cn.com (they are write by are C++,not vfp).
+
+ James Khan
+ njjane@21cn.com
+ http://www.myf1.net/foxcryptor/
+====================================================================================================
+
+Important : To correct use PCT_DLL.dll, you must put it to your system directory or current directory!!!
+
+
+
+1 formtobmp
+--------------------------------------------------------------------------------
+Description:
+ capture window or screen image into a bitmap file
+
+Declareation:
+ Declare Integer formtobmp IN "PCT_DLL.dll" integer hwnd,String bmpFileName
+
+Parameters:
+ hwnd
+ Handle to the window to be saves to a bitmap file. if this parameter is zero, then saves desktop to a bitmap file.
+
+ bmpFileName
+ The bitmap filename to be save. must include full path name.
+
+Note:
+ The function returns a zero result on success,else 1 is returned.
+
+Example in Visual FoxPro:
+
+retVal = formtobmp(0,"c:\screen.bmp") && Save screen to file c:\screen.bmp
+if retval = 0 && if success
+ messagebox("Capture screen ok! bmp file has been saved to file c:\screen.bmp")
+endif
+--------------------------------------------------------------------------------
+
+
+
+2 formtobmpA
+--------------------------------------------------------------------------------
+Description:
+ also a function to capture window or screen image into a bitmap file,but in this function,
+ you can specified a area of screen/window to save.
+
+Declareation:
+ Declare Integer formtobmpA IN "PCT_DLL.dll" string bmpfilename,integer nX,integer nY,integer nX2,integer nY2
+
+Parameters:
+ bmpFileName
+ The bitmap filename to be save. must include full path name.
+ nX
+ x-coord of upper-left corner of bitmap file
+ nX2
+ x-coord of lower-right corner of bitmap file
+ nY
+ y-coord of upper-left corner of bitmap file
+ nY2
+ y-coord of lower-right corner of bitmap file
+
+Note:
+ The function returns a zero result on success,else 1 is returned.
+
+Example in Visual FoxPro:
+
+retVal = formtobmpA("c:\screen0.bmp",20,20,400,400) && Save screen to file c:\screen.bmp
+if retval = 0
+ messagebox("Capture screen ok!")
+endif
+--------------------------------------------------------------------------------
+
+
+3 tojpeg
+--------------------------------------------------------------------------------
+Description:
+ Convert a bmp file to a jpg file
+
+Declareation:
+ Declare Integer tojpeg IN "PCT_DLL.dll" String bmpfilename, String jpgfilename
+
+Parameters:
+ bmpfilename
+ BMP filename to be convert.
+ jpgfilename
+ JPEG filename
+
+Note:
+ The function returns a zero result on success,else 1 is returned.
+
+Example in Visual FoxPro:
+
+retval = tojpeg("c:\screen.bmp","c:\screen.jpg") && Convert c:\screen.bmp to c:\screen.jpg
+
+if retval = 0
+ messagebox("Convert bitmap to jpeg ok!")
+endif
+--------------------------------------------------------------------------------
+
+4 tobmp
+--------------------------------------------------------------------------------
+Description:
+ Convert a jpg file to a bmp file
+
+Declareation:
+ Declare Integer tobmp IN "PCT_DLL.dll" String jpgfilename, String bmpfilename
+
+Parameters:
+ jpgfilename
+ JPEG filename to be convert.
+ bmpfilename
+ BMP filename
+
+Note:
+ The function returns a zero result on success,else 1 is returned.
+
+Example in Visual FoxPro:
+
+retval = tobmp("c:\screen.jpg","c:\screen2.bmp") && Convert c:\screen.jpg to c:\screen2.bmp
+if retval = 0
+ messagebox("Convert jpeg to bitmap success!")
+endif
+--------------------------------------------------------------------------------
+
+
+5 getbmpdimension
+--------------------------------------------------------------------------------
+Description:
+ Get a dimensions of a bitmap
+
+Declareation:
+ Declare Integer getbmpdimension IN "PCT_DLL.dll" string bmpfilename, integer @ nwidth,integer @ nheight
+
+Parameters:
+ bmpfilename
+ origin bitmap filename.
+
+ nwidth
+ bitmap's width measured in pixels.
+
+ nheight
+ bitmap's height measured in pixels.
+
+Note:
+ if success, return value 0, else return 1.
+ if success, variable nwidth hold the bitmap's width ,variable nheight hold the bitmap's height.
+
+Example in Visual FoxPro:
+
+nwidth=0
+nheight=0
+retval = getbmpdimension("c:\screen.bmp",@ nwidth, @ nheight)
+if retval = 0
+ messagebox("Width:"+str(nwidth)+chr(13)+"Height:"+str(nheight))
+endif
+--------------------------------------------------------------------------------
+
+6 getjpgdimension
+--------------------------------------------------------------------------------
+Description:
+ Get a dimensions of a jpeg file
+
+Declareation:
+ Declare Integer getjpgdimension IN "PCT_DLL.dll" string jpgfilename, integer @ nwidth,integer @ nheight
+
+Parameters:
+ jpgfilename
+ origin jpeg filename.
+
+ nwidth
+ jpeg's width measured in pixels.
+
+ nheight
+ jpeg's height measured in pixels.
+
+Note:
+ if success, return value 0, else return 1.
+ if success, variable nwidth hold the jpeg's width ,variable nheight hold the jpeg's height.
+
+Example in Visual FoxPro:
+
+nwidth=0
+nheight=0
+retval = getjpgdimension("c:\screen.jpg",@ nwidth, @ nheight)
+if retval = 0
+ messagebox("Width:"+str(nwidth)+chr(13)+"Height:"+str(nheight))
+endif
+
+clear dlls
\ No newline at end of file
diff --git a/TESTS/ut__foxbin2prg.prg b/TESTS/ut__foxbin2prg.prg
index 982e33f..3a5139c 100644
--- a/TESTS/ut__foxbin2prg.prg
+++ b/TESTS/ut__foxbin2prg.prg
@@ -25,6 +25,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
FUNCTION SETUP
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
*LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
+ *DOEVENTS FORCE
+ MOUSE AT 0,0
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
oFXU_LIB.setup_comun()
@@ -48,6 +50,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB = NULL
ENDIF
RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ SYS(1104)
ENDFUNC
@@ -79,8 +82,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
THIS.messageout( LOWER(PROGRAM(PROGRAM(-1)-1)) )
THIS.messageout( 'Recno#' + TRANSFORM(tnRecno) + ' UniqueID="' + toReg_Esperado.UniqueID + '" ObjType=' + TRANSFORM(toReg_Esperado.ObjType) ;
- + ' ObjCode=' + TRANSFORM(toReg_Esperado.ObjCode) + ' Expr=[' + LEFT(toReg_Esperado.Expr,20) ;
- + IIF(LEN(toReg_Esperado.Expr)>20,'...]',']') ;
+ + ' ObjCode=' + TRANSFORM(toReg_Esperado.ObjCode) + ' Expr=[' + LEFT(toReg_Esperado.EXPR,20) ;
+ + IIF(LEN(toReg_Esperado.EXPR)>20,'...]',']') ;
+ ' vpos=' + TRANSFORM(toReg_Esperado.VPOS) + ' hpos=' + TRANSFORM(toReg_Esperado.HPOS) ;
+ ' height=' + TRANSFORM(toReg_Esperado.HEIGHT) + ' width=' + TRANSFORM(toReg_Esperado.WIDTH) )
@@ -306,7 +309,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
STORE 0 TO lnCodError_Esperado
lnRecno = RECNO()
SCATTER MEMO NAME loReg_Esperado
- lcUniqueID = loReg_Esperado.UNIQUEID
+ lcUniqueID = loReg_Esperado.UniqueID
*-- TEST
IF FILE(lc_OutputFile)
@@ -316,7 +319,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ERROR 'No se encontró el archivo "' + lc_OutputFile + '"'
ENDIF
- LOCATE FOR UNIQUEID==lcUniqueID
+ LOCATE FOR UniqueID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontró el registro #' + TRANSFORM(RECNO('ARCHIVOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
@@ -382,7 +385,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
STORE 0 TO lnCodError_Esperado
lnRecno = RECNO()
SCATTER MEMO NAME loReg_Esperado
- lcUniqueID = loReg_Esperado.UNIQUEID
+ lcUniqueID = loReg_Esperado.UniqueID
*-- TEST
IF FILE(lc_OutputFile)
@@ -392,7 +395,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ERROR 'No se encontró el archivo "' + lc_OutputFile + '"'
ENDIF
- LOCATE FOR UNIQUEID==lcUniqueID
+ LOCATE FOR UniqueID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontró el registro #' + TRANSFORM(RECNO('ARCHIVOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
@@ -451,7 +454,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
- SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Form',10) OR PLATFORM==PADR("WINDOWS",8) )
+ SCAN ALL FOR NOT DELETED() AND ( UniqueID==PADR('Form',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
SCATTER MEMO NAME loReg_Esperado
@@ -468,9 +471,9 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ENDIF
IF EMPTY(lcParent) AND EMPTY(lcClass) AND EMPTY(lcObjName)
- LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UNIQUEID==PADR("Screen",10)
+ LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UniqueID==PADR("Screen",10)
IF NOT FOUND()
- ERROR 'No se encontró el registro de cabecera "' + UNIQUEID + '"'
+ ERROR 'No se encontró el registro de cabecera "' + UniqueID + '"'
ENDIF
ELSE
LOCATE FOR LOWER(CLASS)==lcClass AND LOWER(PARENT)==lcParent AND LOWER(objName)==lcObjName
@@ -532,13 +535,13 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SELECT 0
USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
- LOCATE FOR ObjName = 'Pageframe1' AND NOT DELETED() AND PLATFORM==PADR("WINDOWS",8)
-
- this.assertequals( .T., FOUND(), 'No se ha encontrado el objeto "Pageframe1" que se iba a testear' )
+ LOCATE FOR objName = 'Pageframe1' AND NOT DELETED() AND PLATFORM==PADR("WINDOWS",8)
+
+ THIS.assertequals( .T., FOUND(), 'No se ha encontrado el objeto "Pageframe1" que se iba a testear' )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
- SCATTER FIELDS Properties MEMO NAME loReg
+ SCATTER FIELDS PROPERTIES MEMO NAME loReg
DIMENSION laProps_Esperado(8)
laProps_Esperado( 1) = 'ErasePage'
laProps_Esperado( 2) = 'PageCount'
@@ -548,27 +551,27 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
laProps_Esperado( 6) = 'Height'
laProps_Esperado( 7) = 'Width'
laProps_Esperado( 8) = 'Name'
-
+
*-- TEST
- =ALINES(laProps, loReg.Properties)
-
- this.messageout( 'Línea : Valor esperado => Valor actual' )
- this.messageout( REPLICATE('-',50) )
+ =ALINES(laProps, loReg.PROPERTIES)
+
+ THIS.messageout( 'Línea : Valor esperado => Valor actual' )
+ THIS.messageout( REPLICATE('-',50) )
FOR I = 1 TO ALEN(laProps_Esperado)
lcProp = GETWORDNUM(laProps(I),1)
- this.messageout( 'Línea ' + TRANSFORM(I) + ': ' + laProps_Esperado(I) + ' => ' + lcProp )
+ THIS.messageout( 'Línea ' + TRANSFORM(I) + ': ' + laProps_Esperado(I) + ' => ' + lcProp )
ENDFOR
FOR I = 1 TO ALEN(laProps_Esperado)
lcProp = GETWORDNUM(laProps(I),1)
- this.assertequals( laProps_Esperado(I), lcProp, 'Elemento (' + TRANSFORM(I) + ') del Memo Properties' )
+ THIS.assertequals( laProps_Esperado(I), lcProp, 'Elemento (' + TRANSFORM(I) + ') del Memo Properties' )
ENDFOR
*USE IN (SELECT("TABLABIN"))
*THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName ;
- , loReg_Esperado, loReg, lcTipoBinario )
+ , loReg_Esperado, loReg, lcTipoBinario )
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
@@ -615,42 +618,49 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SELECT 0
USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
- LOCATE FOR ObjName = 'Optiongroup1' AND NOT DELETED() AND PLATFORM==PADR("WINDOWS",8)
-
- this.assertequals( .T., FOUND(), 'No se ha encontrado el objeto "Optiongroup1" que se iba a testear' )
+ LOCATE FOR objName = 'Optiongroup1' AND NOT DELETED() AND PLATFORM==PADR("WINDOWS",8)
+
+ THIS.assertequals( .T., FOUND(), 'No se ha encontrado el objeto "Optiongroup1" que se iba a testear' )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
- SCATTER FIELDS Properties MEMO NAME loReg
+ SCATTER FIELDS PROPERTIES MEMO NAME loReg
DIMENSION laProps_Esperado(7)
laProps_Esperado( 1) = 'ButtonCount'
- laProps_Esperado( 2) = 'Value'
- laProps_Esperado( 3) = 'Top'
- laProps_Esperado( 4) = 'Left'
- laProps_Esperado( 5) = 'Height'
- laProps_Esperado( 6) = 'Width'
+ *laProps_Esperado( 2) = 'Value'
+ *laProps_Esperado( 3) = 'Top'
+ *laProps_Esperado( 4) = 'Left'
+ *laProps_Esperado( 5) = 'Height'
+ *laProps_Esperado( 6) = 'Width'
+ *laProps_Esperado( 7) = 'Name'
+ *-- 13/05/2014. v1.19.22 - Reordenamiento de todas propiedades
+ laProps_Esperado( 2) = 'Top'
+ laProps_Esperado( 3) = 'Left'
+ laProps_Esperado( 4) = 'Height'
+ laProps_Esperado( 5) = 'Width'
+ laProps_Esperado( 6) = 'Value'
laProps_Esperado( 7) = 'Name'
-
+
*-- TEST
- =ALINES(laProps, loReg.Properties)
-
- this.messageout( 'Línea : Valor esperado => Valor actual' )
- this.messageout( REPLICATE('-',50) )
+ =ALINES(laProps, loReg.PROPERTIES)
+
+ THIS.messageout( 'Línea : Valor esperado => Valor actual' )
+ THIS.messageout( REPLICATE('-',50) )
FOR I = 1 TO ALEN(laProps_Esperado)
lcProp = GETWORDNUM(laProps(I),1)
- this.messageout( 'Línea ' + TRANSFORM(I) + ': ' + laProps_Esperado(I) + ' => ' + lcProp )
+ THIS.messageout( 'Línea ' + TRANSFORM(I) + ': ' + laProps_Esperado(I) + ' => ' + lcProp )
ENDFOR
FOR I = 1 TO ALEN(laProps_Esperado)
lcProp = GETWORDNUM(laProps(I),1)
- this.assertequals( laProps_Esperado(I), lcProp, 'Elemento (' + TRANSFORM(I) + ') del Memo Properties' )
+ THIS.assertequals( laProps_Esperado(I), lcProp, 'Elemento (' + TRANSFORM(I) + ') del Memo Properties' )
ENDFOR
*USE IN (SELECT("TABLABIN"))
*THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName ;
- , loReg_Esperado, loReg, lcTipoBinario )
+ , loReg_Esperado, loReg, lcTipoBinario )
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
@@ -700,7 +710,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
- SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
+ SCAN ALL FOR NOT DELETED() AND ( UniqueID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
SCATTER MEMO NAME loReg_Esperado
@@ -717,9 +727,9 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ENDIF
IF EMPTY(lcParent) AND EMPTY(lcClass) AND EMPTY(lcObjName)
- LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UNIQUEID==PADR("Class",10)
+ LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UniqueID==PADR("Class",10)
IF NOT FOUND()
- ERROR 'No se encontró el registro de cabecera "' + UNIQUEID + '"'
+ ERROR 'No se encontró el registro de cabecera "' + UniqueID + '"'
ENDIF
ELSE
LOCATE FOR LOWER(CLASS)==lcClass AND LOWER(PARENT)==lcParent AND LOWER(objName)==lcObjName
@@ -782,7 +792,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
- SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
+ SCAN ALL FOR NOT DELETED() AND ( UniqueID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
SCATTER MEMO NAME loReg_Esperado
@@ -799,9 +809,9 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ENDIF
IF EMPTY(lcParent) AND EMPTY(lcClass) AND EMPTY(lcObjName)
- LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UNIQUEID==PADR("Class",10)
+ LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UniqueID==PADR("Class",10)
IF NOT FOUND()
- ERROR 'No se encontró el registro de cabecera "' + UNIQUEID + '"'
+ ERROR 'No se encontró el registro de cabecera "' + UniqueID + '"'
ENDIF
ELSE
LOCATE FOR LOWER(CLASS)==lcClass AND LOWER(PARENT)==lcParent AND LOWER(objName)==lcObjName
@@ -864,7 +874,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
- SCAN ALL FOR NOT DELETED() AND ( UNIQUEID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
+ SCAN ALL FOR NOT DELETED() AND ( UniqueID==PADR('Class',10) OR PLATFORM==PADR("WINDOWS",8) )
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
SCATTER MEMO NAME loReg_Esperado
@@ -881,9 +891,9 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ENDIF
IF EMPTY(lcParent) AND EMPTY(lcClass) AND EMPTY(lcObjName)
- LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UNIQUEID==PADR("Class",10)
+ LOCATE FOR PLATFORM==PADR("COMMENT",8) AND UniqueID==PADR("Class",10)
IF NOT FOUND()
- ERROR 'No se encontró el registro de cabecera "' + UNIQUEID + '"'
+ ERROR 'No se encontró el registro de cabecera "' + UniqueID + '"'
ENDIF
ELSE
LOCATE FOR LOWER(CLASS)==lcClass AND LOWER(PARENT)==lcParent AND LOWER(objName)==lcObjName
@@ -911,4 +921,277 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
ENDFUNC
+ *******************************************************************************************************************************************
+ FUNCTION Evaluate_Bitmap_Test
+ LPARAMETERS tcTestName, tcControlName, tcFormName
+
+ IF PCOUNT() = 0
+ THIS.messageout( "* Support method, not a valid test." )
+ RETURN .T.
+ ENDIF
+
+ LOCAL lnCodError, lnCodError_Esperado ;
+ , lc_File, lcFile2, lc_OutputFile, lcTipoBinario, lcLib, lcBMP0, lcBMP1 ;
+ , lcParent, lcClass, lcObjName, loReg_Esperado ;
+ , loCtl AS f_optiongroup OF "TESTS\DATOS_READONLY\LIB_CONTROLES.VCX" ;
+ , loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
+ *loCnv.l_Debug = .F.
+ *loCnv.l_ShowErrors = .F.
+ *loCnv.l_Test = .T.
+ *loCnv.l_PropSort_Enabled = .F. && Para buscar diferencias
+ *loCnv.l_MethodSort_Enabled = .F. && Para buscar diferencias
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError, lnCodError_Esperado
+
+ lcTipoBinario = EVL( UPPER(JUSTEXT(EVL(tcFormName,''))), 'VCX' )
+
+ *-- Copio la librería en DATOS_TEST
+ lcLib = FORCEPATH( "LIB_CONTROLES.VCX", oFXU_LIB.cPathDatosTest )
+ lc_File2 = 'LIB_CONTROLES.VCX'
+ lc_OutputFile = FORCEPATH( lc_File2, oFXU_LIB.cPathDatosTest )
+
+ IF lcTipoBinario = 'SCX'
+ lc_File = UPPER(tcFormName)
+ lc_OutputFile = FORCEPATH( lc_File, oFXU_LIB.cPathDatosTest )
+ ENDIF
+
+ loCnv.l_NoTimestamps = .F.
+ loCnv.l_ClearUniqueID = .F.
+
+ IF lcTipoBinario = 'SCX'
+ oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + 'X' ) )
+ oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + 'T' ) )
+ ENDIF
+
+ oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File2, LEFT( JUSTEXT(lc_File2),2 ) + 'X' ) )
+ oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File2, LEFT( JUSTEXT(lc_File2),2 ) + 'T' ) )
+
+ *-- Genero TX2
+ loCnv.Ejecutar( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' )
+
+ *-- Genero BMP con libreria original
+ SET CLASSLIB TO (lcLib) ADDITIVE
+ IF lcTipoBinario = 'SCX'
+ DO FORM (lc_OutputFile) NAME loCtl LINKED NOSHOW
+ ELSE
+ loCtl = CREATEOBJECT( tcControlName )
+ ENDIF
+ loCtl.c_testname = tcTestName + '_0'
+ IF loCtl.BaseClass = 'Formset'
+ loCtl.Forms(1).ALWAYSONTOP= .T.
+ loCtl.SHOW()
+ loCtl.REFRESH()
+ ELSE
+ loCtl.ALWAYSONTOP= .T.
+ loCtl.SHOW()
+ ENDIF
+ loCtl.HIDE()
+ loCtl.RELEASE()
+ loCtl = NULL
+ RELEASE CLASSLIB (lcLib)
+ CLEAR CLASSLIB (lcLib)
+
+ *-- Genero BIN
+ loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' )
+
+ *-- Genero BMP con libreria regenerada
+ SET CLASSLIB TO (lcLib) ADDITIVE
+ IF lcTipoBinario = 'SCX'
+ DO FORM (lc_OutputFile) NAME loCtl LINKED NOSHOW
+ ELSE
+ loCtl = CREATEOBJECT( tcControlName )
+ ENDIF
+ loCtl.c_testname = tcTestName + '_1'
+ IF loCtl.BaseClass = 'Formset'
+ loCtl.Forms(1).ALWAYSONTOP= .T.
+ loCtl.SHOW()
+ loCtl.REFRESH()
+ ELSE
+ loCtl.ALWAYSONTOP= .T.
+ loCtl.SHOW()
+ ENDIF
+ loCtl.HIDE()
+ loCtl.RELEASE()
+ loCtl = NULL
+ RELEASE CLASSLIB (lcLib)
+ CLEAR CLASSLIB (lcLib)
+
+ *-- Comparo resultados
+ lcBMP0 = FORCEPATH( tcTestName + '_0.bmp', oFXU_LIB.cPathDatosTest )
+ lcBMP1 = FORCEPATH( tcTestName + '_1.bmp', oFXU_LIB.cPathDatosTest )
+
+ THIS.messageout( "Se comparan bitmaps de pantalla, para saber si hay cambios estéticos y detectar fallos al ensamblar el binario" )
+ THIS.messageout( "lcBMP0 = " + lcBMP0 )
+ THIS.messageout( "lcBMP1 = " + lcBMP1 )
+ THIS.asserttrue( FILETOSTR( lcBMP0 ) == FILETOSTR( lcBMP1 ), "COMPARACIÓN DE BITMAPS" )
+
+
+ CATCH TO loEx
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
+
+ FINALLY
+ * USE IN (SELECT("ARCHIVOBIN_IN"))
+ * USE IN (SELECT("TABLABIN"))
+ STORE NULL TO loCnv, loCtl
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_OptionGroup__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'OptionGroup_Test', 'f_OptionGroup', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_OptionGroup__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'OptionGroup_Test', 'f_OptionGroup', 'F_OPTIONGROUP.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_Checkbox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Checkbox_Test', 'f_Checkbox', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Checkbox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Checkbox_Test', 'f_Checkbox', 'F_CHECKBOX.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_Textbox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Textbox_Test', 'f_Textbox', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Textbox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Textbox_Test', 'f_Textbox', 'F_TEXTBOX.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_Combobox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Combobox_Test', 'f_Combobox', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Combobox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Combobox_Test', 'f_Combobox', 'F_Combobox.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_CommandGroup__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'CommandGroup_Test', 'f_CommandGroup', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_CommandGroup__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'CommandGroup_Test', 'f_CommandGroup', 'F_CommandGroup.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_ListBox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'ListBox_Test', 'f_ListBox', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_ListBox__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'ListBox_Test', 'f_ListBox', 'F_ListBox.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaLaClase__LIB_CONTROLES__F_Form_Controles__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Form_Controles_Test', 'f_Form_Controles', '' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Form_Controles__YValidarLaVisualizacionDePantalla
+
+ THIS.evaluate_bitmap_test( 'Form_Controles_Test', 'f_Form_Controles', 'F_Form_Controles.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Formset__YValidarLaVisualizacionDePantalla
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ oFXU_LIB.copiarArchivosParaTest( 'encuestas.*' )
+ THIS.evaluate_bitmap_test( 'Formset_Test', 'f_Formset', 'F_Formset.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Form_AA__YValidarLaVisualizacionDePantalla
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ THIS.evaluate_bitmap_test( 'Form_Test_Eventos_y_Controles', 'f_Form_AA', 'F_Form_AA.SCX' )
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElForm__F_Form_AA2__YValidarLaVisualizacionDePantalla
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ THIS.evaluate_bitmap_test( 'Form_Test_Eventos_y_Controles2', 'f_Form_AA2', 'F_Form_AA2.SCX' )
+
+ ENDFUNC
+
+
ENDDEFINE
diff --git a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg
new file mode 100644
index 0000000..d8de2b0
--- /dev/null
+++ b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg
@@ -0,0 +1,2169 @@
+DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase OF FxuTestCase.prg
+
+ #IF .F.
+ LOCAL THIS AS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion OF ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.PRG
+ #ENDIF
+
+ #DEFINE CR_LF CHR(13) + CHR(10)
+ #DEFINE C_CR CHR(13)
+ #DEFINE C_LF CHR(10)
+ #DEFINE C_TAB CHR(9)
+ ioFB2P = NULL
+
+
+ *******************************************************************************************************************************************
+ FUNCTION SETUP
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ *LOCAL loFB2P AS c_conversor_base OF "FOXBIN2PRG.PRG"
+ SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG', 'FOXBIN2PRG.PRG'
+ oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
+ oFXU_LIB.setup_comun()
+
+ THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
+ *loFB2P = THIS.ioFB2P
+ *loFB2P.l_Test = .F.
+
+ ERASE ('TESTS\DATOS_TEST\foxbin2prg.cfg')
+ ERASE ('TESTS\DATOS_TEST\foxbin2prg.cfg.bak')
+ ERASE ('TESTS\DATOS_TEST\foxbin2prg.cfg.1.bak')
+ ERASE ('TESTS\DATOS_TEST\foxbin2prg.cfg.2.bak')
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION TearDown
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+ THIS.ioFB2P = NULL
+
+ IF VARTYPE(oFXU_LIB) = "O"
+ oFXU_LIB.teardown_comun()
+ oFXU_LIB = NULL
+ ENDIF
+ RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG', 'FOXBIN2PRG.PRG'
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Evaluate_results
+ LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado, tcSeteo, teValorEsperado, teValor
+
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ IF PCOUNT() = 0
+ THIS.messageout( "* Support method, not a valid test." )
+ RETURN .T.
+ ENDIF
+
+
+ IF ISNULL(toEx)
+ *-- Visualización de valores
+ LOCAL loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG"
+ loFB2P = THIS.ioFB2P
+ THIS.messageout( LOWER(PROGRAM(PROGRAM(-1)-1)) )
+ THIS.messageout( '.' )
+ THIS.messageout( 'Archivo ' + loFB2P.c_Foxbin2prg_ConfigFile + IIF(FILE(loFB2P.c_Foxbin2prg_ConfigFile),': EXISTE', ': NO EXISTE') )
+ THIS.messageout( TRANSFORM(tcSeteo) )
+ THIS.messageout( 'Valor esperado: ' + TRANSFORM(teValorEsperado) )
+ THIS.messageout( 'Valor: ' + TRANSFORM(teValor) )
+
+ *-- Formateo
+ * '[' + oFXU_LIB.mejorarPresentacionCaracteresEspeciales( TRANSFORM( EVALUATE('toReg_Esperado.'+laProps(I)) ) ) + ']' )
+
+ *-- COMPARO
+ THIS.assertequals( TRANSFORM(teValorEsperado), TRANSFORM(teValor), tcSeteo )
+
+
+ ELSE
+ *-- Evaluación de errores
+ THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) )
+ THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) )
+ IF NOT INLIST( toEx.ERRORNO, 1098, 2071 ) && Error del usuario (ERROR y THROW)
+ THIS.messageout( TRANSFORM(toEx.LINECONTENTS) )
+ ENDIF
+
+ THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' )
+ ENDIF
+
+ THIS.messageout( '' )
+ THIS.messageout( REPLICATE('*',80) )
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_EsteComentado_UseElValorPorDefecto_YNoExistaBAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_EsteComentado_UseElValorPorDefecto_YExistaBAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+ STRTOFILE('', 'TESTS\DATOS_TEST\foxbin2prg.cfg.BAK')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_Sea_0_YNoExistaBAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ExtraBackupLevels:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_Sea_0_YExistaBAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ExtraBackupLevels:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+ STRTOFILE('ExtraBackupLevels:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg.bak')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_Sea_1_YNoExistaBAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ExtraBackupLevels:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_1_BAK_Cuando_ExtraBackupLevels_Sea_1_YExistaBAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ExtraBackupLevels:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+ STRTOFILE('ExtraBackupLevels:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg.bak')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_Sea_2_YExista_1_BAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg.bak')
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg.1.bak')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_GenerarExtension_BAK_Cuando_ExtraBackupLevels_Sea_2_YExista_2_BAK
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg.bak')
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg.1.bak')
+ STRTOFILE('ExtraBackupLevels:2', 'TESTS\DATOS_TEST\foxbin2prg.cfg.2.bak')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'Extensión de Backup'
+ leValorEsperado = '.BAK'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.getNext_BAK('TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_Debug_False_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_Debug'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_Debug
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_Debug_False_CuandoElArhivo_foxbin2prg_cfg_Tenga_Debug_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('Debug:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_Debug'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_Debug
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_Debug_True_CuandoElArhivo_foxbin2prg_cfg_Tenga_Debug_1
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('Debug:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_Debug'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_Debug
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_NoTimestamps_True_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_NoTimestamps'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_NoTimestamps
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_NoTimestamps_False_CuandoElArhivo_foxbin2prg_cfg_Tenga_NoTimestamps_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('NoTimestamps:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_NoTimestamps'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_NoTimestamps
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_NoTimestamps_True_CuandoElArhivo_foxbin2prg_cfg_Tenga_NoTimestamps_1
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('NoTimestamps:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_NoTimestamps'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_NoTimestamps
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ClearUniqueID_False_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ClearUniqueID'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ClearUniqueID
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ClearUniqueID_False_CuandoElArhivo_foxbin2prg_cfg_Tenga_ClearUniqueID_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ClearUniqueID:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ClearUniqueID'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ClearUniqueID
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ClearUniqueID_True_CuandoElArhivo_foxbin2prg_cfg_Tenga_ClearUniqueID_1
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('ClearUniqueID:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ClearUniqueID'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ClearUniqueID
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ShowProgress_True_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ShowProgress'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ShowProgress
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ShowProgress_True_CuandoElArhivo_foxbin2prg_cfg_Tenga_DontShowProgress_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('DontShowProgress:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ShowProgress'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ShowProgress
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ShowProgress_False_CuandoElArhivo_foxbin2prg_cfg_Tenga_DontShowProgress_1
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ loFB2P.l_ShowErrors = .F.
+ STRTOFILE('DontShowProgress:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ShowProgress'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ShowProgress
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ShowErrors_True_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ShowErrors'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ShowErrors
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ShowErrors_True_CuandoElArhivo_foxbin2prg_cfg_Tenga_DontShowErrors_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('DontShowErrors:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ShowErrors'
+ leValorEsperado = .T.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ShowErrors
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_Setear_ShowErrors_False_CuandoElArhivo_foxbin2prg_cfg_Tenga_DontShowErrors_1
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('DontShowErrors:1', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'l_ShowErrors'
+ leValorEsperado = .F.
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.l_ShowErrors
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_DB2_Como_DB2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DB2 Extension:'
+ leValorEsperado = 'DB2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_DB2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_DB2_Como_DBA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_DB2_igual_DBA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:db2=dba', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DB2 Extension:'
+ leValorEsperado = 'DBA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_DB2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_DC2_Como_DC2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DC2 Extension:'
+ leValorEsperado = 'DC2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_DC2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_DC2_Como_DCA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_DC2_igual_DCA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:dc2=dca', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DC2 Extension:'
+ leValorEsperado = 'DCA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_DC2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_FR2_Como_FR2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'FR2 Extension:'
+ leValorEsperado = 'FR2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_FR2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_FR2_Como_FRA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_FR2_igual_FRA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:fr2=fra', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'FR2 Extension:'
+ leValorEsperado = 'FRA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_FR2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_LB2_Como_LB2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'LB2 Extension:'
+ leValorEsperado = 'LB2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_LB2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_LB2_Como_LBA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_LB2_igual_LBA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:lb2=lba', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'LB2 Extension:'
+ leValorEsperado = 'LBA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_LB2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_MN2_Como_MN2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'MN2 Extension:'
+ leValorEsperado = 'MN2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_MN2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_MN2_Como_MNA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_MN2_igual_MNA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:mn2=mna', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'MN2 Extension:'
+ leValorEsperado = 'MNA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_MN2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_PJ2_Como_PJ2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'PJ2 Extension:'
+ leValorEsperado = 'PJ2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_PJ2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_PJ2_Como_PJA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_PJ2_igual_PJA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:pj2=pja', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'PJ2 Extension:'
+ leValorEsperado = 'PJA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_PJ2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_SC2_Como_SC2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'SC2 Extension:'
+ leValorEsperado = 'SC2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_SC2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_SC2_Como_SCA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_SC2_igual_SCA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:sc2=sca', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'SC2 Extension:'
+ leValorEsperado = 'SCA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_SC2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_VC2_Como_VC2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'VC2 Extension:'
+ leValorEsperado = 'VC2'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_VC2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearLaExtension_VC2_Como_VCA_CuandoElArhivo_foxbin2prg_cfg_TengaExtension_VC2_igual_VCA
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('Extension:vc2=vca', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'VC2 Extension:'
+ leValorEsperado = 'VCA'
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.c_VC2
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_DBF_Como_1_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DBF_Conversion_Support:'
+ leValorEsperado = 1
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.DBF_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_DBF_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_DBF_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('DBF_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DBF_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.DBF_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_DBC_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DBC_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.DBC_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_DBC_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_DBC_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('DBC_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'DBC_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.DBC_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_PJX_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'PJX_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.PJX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_PJX_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_PJX_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('PJX_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'PJX_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.PJX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_SCX_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'SCX_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.SCX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_SCX_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_SCX_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('SCX_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'SCX_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.SCX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_VCX_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'VCX_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.VCX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_VCX_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_VCX_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('VCX_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'VCX_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.VCX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_MNX_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'MNX_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.MNX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_MNX_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_MNX_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('MNX_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'MNX_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.MNX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_FRX_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'FRX_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.FRX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_FRX_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_FRX_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('FRX_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'FRX_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.FRX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_LBX_Como_2_CuandoNoExistaElArhivo_foxbin2prg_cfg
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'LBX_Conversion_Support:'
+ leValorEsperado = 2
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.LBX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ *******************************************************************************************************************************************
+ FUNCTION Deberia_SetearElSoporte_LBX_Como_0_CuandoElArhivo_foxbin2prg_cfg_Y_LBX_Conversion_Support_Sea_0
+ LOCAL lnCodError, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor ;
+ , loFB2P AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
+ , loEx AS EXCEPTION
+ #IF .F.
+ PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
+ #ENDIF
+
+ TRY
+ loEx = NULL
+ loFB2P = THIS.ioFB2P
+ loFB2P.l_ShowErrors = .F.
+ loFB2P.c_Foxbin2prg_ConfigFile = 'TESTS\DATOS_TEST\foxbin2prg.cfg'
+ STRTOFILE('LBX_Conversion_Support:0', 'TESTS\DATOS_TEST\foxbin2prg.cfg')
+
+
+ *-- DATOS DE ENTRADA
+ STORE 0 TO lnCodError
+ lcSeteo = 'LBX_Conversion_Support:'
+ leValorEsperado = 0
+
+
+ *-- TEST
+ loFB2P.EvaluarConfiguracion()
+ leValor = loFB2P.LBX_Conversion_Support
+
+
+ CATCH TO loEx
+
+ FINALLY
+ THIS.Evaluate_results( loEx, lnCodError_Esperado, lcSeteo, leValorEsperado, leValor )
+
+ ENDTRY
+
+ ENDFUNC
+
+
+ENDDEFINE
diff --git a/change_file_type.bat b/change_file_type.bat
new file mode 100644
index 0000000..559ff47
--- /dev/null
+++ b/change_file_type.bat
@@ -0,0 +1,4 @@
+FOR /F "tokens=*" %%i IN ('dir /S /B *.prg') DO cm chgrevtype %%i -type=txt
+FOR /F "tokens=*" %%i IN ('dir /S /B *.??2') DO cm chgrevtype %%i -type=txt
+FOR /F "tokens=*" %%i IN ('dir /S /B *.??a') DO cm chgrevtype %%i -type=txt
+FOR /F "tokens=*" %%i IN ('dir /S /B *.cfg*') DO cm chgrevtype %%i -type=txt
diff --git a/clean_copied_memo.prg b/clean_copied_memo.prg
new file mode 100644
index 0000000..659160f
--- /dev/null
+++ b/clean_copied_memo.prg
@@ -0,0 +1,23 @@
+LOCAL I, lcStrIn, lcStrOut, laStr(1), lcLeftDelim, lcRightDelim, lcStr, lnLines, lnPosDlr
+ON KEY LABEL CTRL+R DO clean_copied_memo.prg
+lcStrOut = ''
+lcStrIn = _CLIPTEXT
+lnLines = ALINES(laStr, lcStrIn)
+lnPosDlr = AT('.',laStr(1))
+
+*--
+lcLeftDelim = IIF(lnPosDlr > 0 AND lnPosDlr < AT('=', laStr(1)), LEFT(laStr(1), lnPosDlr), '')
+lcRightDelim = ' ='
+*--
+MESSAGEBOX( "LeftDelim = " + lcLeftDelim)
+
+FOR I = 1 TO lnLines
+ lcStr = STREXTRACT( laStr(I), lcLeftDelim, lcRightDelim )
+ *IF EMPTY(lcStr)
+ * lcStr = STREXTRACT( laStr(I), '', lcRightDelim )
+ *ENDIF
+ laStr(I) = lcStr
+ lcStrOut = lcStrOut + CHR(13) + laStr(I)
+ENDFOR
+
+_CLIPTEXT = SUBSTR( lcStrOut, 2 )
diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2
index 04756a4..f1ac3f1 100644
--- a/foxbin2prg.pj2
+++ b/foxbin2prg.pj2
@@ -23,10 +23,10 @@ _CompanyName = "Fernando D. Bozzo"
_FileDescription = "Conversor bidireccional de binarios FoxPro 9 (scx,vcx,pjx) a texto para sustituir al scctext :-)"
_LegalCopyright = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
-_ProductName = " FOXBIN2PRG v1.19.20"
+_ProductName = " FOXBIN2PRG v1.19.22"
_MajorVer = "1"
_MinorVer = "19"
-_Revision = " 319"
+_Revision = " 321"
_LanguageID = "1034"
_AutoIncrement = "1"
*
diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt
index ba70a3b..a53c674 100644
Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ
diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx
index 2a8633d..32c19e6 100644
Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ
diff --git a/foxbin2prg.prg b/foxbin2prg.prg
index 19e5a41..add386e 100644
--- a/foxbin2prg.prg
+++ b/foxbin2prg.prg
@@ -83,6 +83,7 @@
* 29/03/2014 FDBOZZO v1.19.19 Nueva característica: Hooks al regenerar DBF para poder realizar procesos intermedios, como la carga de datos del DBF regenerado desde una fuente externa
* 17/04/2014 FDBOZZO v1.19.20 Relativización de directorios de CDX dentro de los DB2 para minimizar diferencias
* 29/04/2014 FDBOZZO v1.19.21 Agregada posibilidad de convertir un proyecto entero a tx2 // Optimizaciones en generación según timestamps // AGAIN en aperturas // Simplificación sección PAM
+* 08/05/2014 FDBOZZO v1.19.22 Arreglo bug vcx/scx: La propiedad Picture de una clase form se pierde y no muestra la imagen
*
*
*---------------------------------------------------------------------------------------------------
@@ -109,6 +110,7 @@
* 24/03/2014 Ryan Harris REPORTE BUG vcx/scx v1.19.17: El comentario a nivel de librería se pierde (Solucionado en v1.19.18)
* 29/04/2014 Matt Slay MEJORA v1.19.20: Posibilidad de convertir un proyecto entero a tx2 // Optimización de generación según timestamps (Agregado en v1.19.21)
* 30/04/2014 Jim Nelson MEJORA v1.19.20: Agregado de AGAIN en apertura de tablas (Agregado en v1.19.21)
+* 07/05/2014 Fidel Charny REPORTE BUG vcx/scx v1.19.21: La propiedad Picture de una clase form se pierde y no muestra la imagen. No ocurre con la propiedad Picture de los controles (Arreglado en v1.19.22)
*
*
*---------------------------------------------------------------------------------------------------
@@ -503,6 +505,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
PROCEDURE INIT
+ LOCAL lcSys16, lnPosProg
SET DELETED ON
SET DATE YMD
SET HOURS TO 24
@@ -511,7 +514,15 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
SET TABLEPROMPT OFF
SET POINT TO '.'
SET SEPARATOR TO ','
- THIS.c_Foxbin2prg_FullPath = SUBSTR( SYS(16), AT( 'C_FOXBIN2PRG.INIT', SYS(16) ) + LEN('C_FOXBIN2PRG.INIT') + 1 )
+
+ lcSys16 = SYS(16)
+ IF LEFT(lcSys16,10) == 'PROCEDURE '
+ lnPosProg = AT(" ", lcSys16, 2) + 1
+ ELSE
+ lnPosProg = 1
+ ENDIF
+
+ THIS.c_Foxbin2prg_FullPath = SUBSTR( lcSys16, lnPosProg )
THIS.c_Foxbin2prg_ConfigFile = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' )
THIS.c_CurDir = SYS(5) + CURDIR()
THIS.o_FSO = NEWOBJECT("Scripting.FileSystemObject")
@@ -1806,6 +1817,7 @@ DEFINE CLASS c_conversor_base AS SESSION
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -1824,7 +1836,7 @@ DEFINE CLASS c_conversor_base AS SESSION
+ []
- DIMENSION a_SpecialProps(1)
+ DIMENSION a_SpecialProps(1), a_SpecialProps_Form(1)
l_Debug = .F.
l_Test = .F.
c_InputFile = ''
@@ -1841,11 +1853,13 @@ DEFINE CLASS c_conversor_base AS SESSION
l_PropSort_Enabled = .T.
l_ReportSort_Enabled = .T.
c_OriginalFileName = ''
+ c_ClaseActual = ''
oFSO = NULL
*******************************************************************************************************************
PROCEDURE INIT
+ LOCAL lcSys16, lnPosProg
SET DELETED ON
SET DATE YMD
SET HOURS TO 24
@@ -1858,7 +1872,15 @@ 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)
+ IF LEFT(lcSys16,10) == 'PROCEDURE '
+ lnPosProg = AT(" ", lcSys16, 2) + 1
+ ELSE
+ lnPosProg = 1
+ ENDIF
+
+ THIS.c_Foxbin2prg_FullPath = SUBSTR( lcSys16, lnPosProg )
THIS.SortSpecialProps()
ENDPROC
@@ -2514,7 +2536,12 @@ DEFINE CLASS c_conversor_base AS SESSION
lcPropName = 'A999' + lcPropName
OTHERWISE
- lnPos = ASCAN( THIS.a_SpecialProps, lcPropName, 1, 0, 1, 1+2+4 )
+ *-- 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 )
+ *ENDIF
lcPropName = 'A' + PADL( EVL(lnPos,998), 3, '0' ) + lcPropName
ENDCASE
@@ -2668,11 +2695,34 @@ DEFINE CLASS c_conversor_base AS SESSION
+ PROTECTED PROCEDURE SortSpecialProps_Form_Add
+ LPARAMETERS tcPropName, I
+ I = I + 1
+ DIMENSION THIS.a_SpecialProps_Form(I)
+ THIS.a_SpecialProps_Form(I) = tcPropName
+ ENDPROC
+
+
+
PROCEDURE SortSpecialProps
- LOCAL I
- I = 0
+ TRY
+ 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 )
+
+
+
+
+ *-- 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
@@ -2806,7 +2856,21 @@ DEFINE CLASS c_conversor_base AS SESSION
.SortSpecialProps_Add( '_memberdata', @I )
.SortSpecialProps_Add( 'Themes', @I )
*.SortSpecialProps_Add( 'Name', @I ) && System "Name" property
+ ENDIF
ENDWITH
+
+ CATCH TO loEx
+ loEx.UserValue = 'lcPropsFile = ' + lcPropsFile
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN
ENDPROC
@@ -3536,6 +3600,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
lcMemo = ''
IF toClase._Prop_Count > 0
+ THIS.c_ClaseActual = LOWER(toClase._BaseClass)
DIMENSION laPropsAndValues( toClase._Prop_Count, 3 )
ACOPY( toClase._Props, laPropsAndValues )
lnPropsAndValues_Count = toClase._Prop_Count
@@ -3578,6 +3643,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
lcMemo = ''
IF toObjeto._Prop_Count > 0
+ THIS.c_ClaseActual = LOWER(toObjeto._BaseClass)
DIMENSION laPropsAndValues( toObjeto._Prop_Count, 2 )
ACOPY( toObjeto._Props, laPropsAndValues )
diff --git a/getrevisions.prg b/getrevisions.prg
new file mode 100644
index 0000000..2edd527
--- /dev/null
+++ b/getrevisions.prg
@@ -0,0 +1,21 @@
+*-- Para Fidel
+#DEFINE HISTORIAL_I '* '
+#DEFINE HISTORIAL_F '* '
+
+LOCAL lcHistorial, laLinea(1), laHistorial(1,4)
+lcHistorial = STREXTRACT( FILETOSTR('FOXBIN2PRG.PRG'), HISTORIAL_I, HISTORIAL_F )
+SET MEMOWIDTH TO 220 && Solo para prueba. Quitar en la función
+CLEAR && Solo para prueba. Quitar en la función
+*-- Formato a leer:
+*-- [* 04/11/2013 FDBOZZO v1.0 Creación inicial de las clases y soporte de los archivos VCX/SCX/PJX]
+FOR I = 1 TO ALINES(laLinea, lcHistorial, 1+4+8)
+ DIMENSION laHistorial(I,4)
+ laHistorial(I,1) = GETWORDNUM( laLinea(I), 2 )
+ laHistorial(I,2) = GETWORDNUM( laLinea(I), 3 )
+ laHistorial(I,3) = GETWORDNUM( laLinea(I), 4 )
+ laHistorial(I,4) = SUBSTR( laLinea(I), AT(laHistorial(I,3), laLinea(I)) + LEN(laHistorial(I,3)) + 1 )
+ *-- Este '?' es solo de prueba
+ ? '['+laHistorial(I,1)+']', '['+laHistorial(I,2)+']', '['+laHistorial(I,3)+']', '['+laHistorial(I,4)+']'
+ENDFOR
+
+*-- En este punto tenés el array laHistorial con 1 columna para cada dato.
\ No newline at end of file
diff --git a/preparar_SpecialProps_desde_Lista.prg b/preparar_SpecialProps_desde_Lista.prg
new file mode 100644
index 0000000..69ab508
--- /dev/null
+++ b/preparar_SpecialProps_desde_Lista.prg
@@ -0,0 +1,12 @@
+LOCAL I, lcStrIn, lcStrOut, laStr(1), lcLeftDelim, lcRightDelim, lcStr, lnLines, lnPosDlr
+ON KEY LABEL CTRL+R DO preparar_specialprops_desde_lista.prg
+lcStrOut = ''
+lcStrIn = _CLIPTEXT
+lnLines = ALINES(laStr, lcStrIn)
+lnPosDlr = AT('.',laStr(1))
+
+FOR I = 1 TO lnLines
+ lcStrOut = lcStrOut + CHR(13) + ".SortSpecialProps_Form_Add( '" + laStr(I) + "', @I )"
+ENDFOR
+
+_CLIPTEXT = SUBSTR( lcStrOut, 2 )
diff --git a/props_all.txt b/props_all.txt
new file mode 100644
index 0000000..82585a2
--- /dev/null
+++ b/props_all.txt
@@ -0,0 +1,401 @@
+DEClassLibrary
+DEClass
+DataSession
+ScaleMode
+ErasePage
+AutoSize
+MemberClassLibrary
+MemberClass
+PageCount
+ColumnCount
+ButtonCount
+TabStretch
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Desktop
+ShowWindow
+ScrollBars
+ShowInTaskBar
+DoCreate
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+TabStyle
+ShowTips
+BufferMode
+AutoCenter
+Picture
+ControlBox
+Closable
+ActivePage
+Top
+Left
+Height
+Width
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+DateFormat
+DateMark
+Century
+Hours
+Seconds
+StrictDateEntry
+Anchor
+HalfHeightCaption
+MaxButton
+MinButton
+Tabs
+Movable
+MaxHeight
+MaxWidth
+MinHeight
+MinWidth
+MaxTop
+MaxLeft
+MaxLength
+WordWrap
+Stretch
+DownPicture
+DisabledPicture
+PicturePosition
+PictureMargin
+PictureSpacing
+MDIForm
+AddLineFeeds
+ClipControls
+HeaderClassLibrary
+HeaderClass
+Alignment
+AllowTabs
+Centered
+BackStyle
+BorderStyle
+BorderWidth
+BoundColumn
+Curvature
+PictureSelectionDisplay
+Caption
+Bound
+ColumnOrder
+DrawMode
+DrawStyle
+DrawWidth
+ColumnCount
+ColumnWidths
+RowSourceType
+RowSource
+DisplayValue
+Value
+ControlSource
+CurrentControl
+AllowAddNew
+AllowHeaderSizing
+AllowRowSizing
+ChildOrder
+DeleteMark
+Cancel
+Default
+Enabled
+KeySort
+FillStyle
+Icon
+KeyPreview
+TitleBar
+WindowType
+WindowState
+LockScreen
+AlwaysOnTop
+AlwaysOnBottom
+SizeBox
+ZoomBox
+Resizable
+GridLines
+GridLineWidth
+HeaderHeight
+FirstElement
+Format
+HelpContextID
+WhatsThisHelpID
+WhatsThisHelp
+WhatsThisButton
+RightToLeft
+DefOleLCID
+MacDesktop
+Highlight
+HighlightRow
+HighlightRowLineWidth
+HideSelection
+ColumnLines
+IncrementalSearch
+Increment
+InputMask
+KeyboardHighValue
+KeyboardLowValue
+HostName
+AutoVerbMenu
+AutoActivate
+LinkMaster
+Margin
+MaxLength
+MousePointer
+MouseIcon
+Panel
+PanelLink
+ReadOnly
+RecordMark
+RecordSource
+RecordSourceType
+RelationalExpr
+RowHeight
+Sparse
+SelectOnEntry
+DynamicBackColor
+DynamicForeColor
+DynamicFontBold
+DynamicFontItalic
+DynamicFontName
+DynamicFontOutline
+DynamicFontSize
+DynamicFontShadow
+DynamicFontStrikethru
+DynamicFontUnderline
+DynamicAlignment
+DynamicCurrentControl
+DynamicInputMask
+MoverBars
+MultiSelect
+NumberOfElements
+SelectOnEntry
+Sorted
+SpecialEffect
+PageOrder
+TabOrientation
+SpinnerHighValue
+SpinnerLowValue
+StatusBarText
+Style
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+WordWrap
+Sizable
+Interval
+BufferMode
+AutoRelease
+Visible
+MemoWindow
+OpenWindow
+PasswordChar
+EnableHyperlinks
+PicturePosition
+PictureMargin
+PictureSpacing
+LineSlant
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+FillColor
+BorderColor
+WordWrap
+SplitBar
+View
+WindowList
+ReadSave
+ReadTimeout
+ReadMouse
+ReadCycle
+ReadLock
+PolyPoints
+Partition
+GridLineColor
+HighlightBackColor
+HighlightForeColor
+ItemForeColor
+ItemBackColor
+DisabledItemBackColor
+DisabledBackColor
+SelectedForeColor
+DisabledForeColor
+SelectedBackColor
+ItemForeColor
+ItemBackColor
+DisabledItemBackColor
+SelectedItemForeColor
+SelectedItemBackColor
+DisabledItemForeColor
+RightToLeft
+LockColumns
+LockColumnsLeft
+AllowAutoColumnFit
+AllowCellSelection
+RightToLeft
+NullDisplay
+IntegralHeight
+ItemTips
+BoundTo
+IMEMode
+Rotation
+DisplayCount
+OLEDropTextInsertion
+HScrollSmallChange
+VScrollSmallChange
+ContinuousScroll
+Themes
+AutoHideScrollbar
+AutoComplete
+AutoCompSource
+AutoCompTable
+BindControls
+AllowOutput
+Dockable
+Optimize
+UseDeDataSource
+SelectCmd
+UpdateCmd
+InsertCmd
+DeleteCmd
+AllowUpdate
+AllowInsert
+AllowDelete
+CursorSchema
+Alias
+BufferModeOverride
+DataSource
+DataSourceType
+InsertCmdDataSource
+InsertCmdDataSourceType
+UpdateCmdDataSource
+UpdateCmdDataSourceType
+DeleteCmdDataSource
+DeleteCmdDataSourceType
+Flags
+CompareMemo
+OpenViews
+AutoOpenTables
+AutoCloseTables
+InitialSelectedAlias
+DataSource
+DataSourceType
+Order
+OrderDirection
+Database
+CursorSource
+Exclusive
+Filter
+NoDataOnLoad
+FetchAsNeeded
+FetchMemo
+Prepared
+SendUpdates
+BatchUpdateCount
+FetchSize
+MaxRecords
+UseMemoSize
+UpdateType
+WhereType
+KeyFieldList
+Tables
+UpdatableFieldList
+UpdateNameList
+ConversionFunc
+AllowSimultaneousFetch
+BreakOnError
+UpdateGramSchemaLocation
+ConflictCheckType
+ConflictCheckCmd
+PreserveWhiteSpace
+MapN19_4ToCurrency
+IsDiffgram
+XMLName
+XMLNamespace
+XMLPrefix
+XSDtype
+XSDtotalDigits
+XSDfractionDigits
+XSDmaxLength
+IsAttribute
+DataType
+FractionDigits
+NoCpTrans
+Unicode
+IsNull
+IsBinary
+IsBase64
+WrapInCDATA
+DisableEncode
+Keyfield
+ChildTable
+NestedInto
+FirstNestedTable
+NextSiblingTable
+FormattedOutput
+ForceCloseTag
+RespectCursorCP
+UTF8Encoded
+XMLSchemaLocation
+WrapMemoInCDATA
+WrapCharInCDATA
+Unicode
+MapVarchar
+MapBinary
+RespectNesting
+SelectionNamespaces
+XMLNameIsXPath
+DeclareXMLPrefix
+CurrentPass
+TwoPassProcess
+FRXDataSession
+PreviewContainer
+DynamicLineHeight
+CommandClauses
+AllowModalMessages
+QuietMode
+CurrentDataSession
+SendGDIPlusImage
+PrintJobName
+CallAdjustObjectSize
+CallEvaluateContents
+ParentAlias
+RelationalExpr
+ChildAlias
+ChildOrder
+OneToMany
+UseCursorSchema
+NoData
+TimestampFieldList
+InsertCmdRefreshFieldList
+InsertCmdRefreshKeyFieldList
+UpdateCmdRefreshFieldList
+UpdateCmdRefreshKeyFieldList
+RefreshTimestamp
+RefreshCmd
+RefreshCmdDataSource
+RefreshCmdDataSourceType
+InsertCmdRefreshCmd
+UpdateCmdRefreshCmd
+RefreshIgnoreFieldList
+FetchMemoDataSource
+FetchMemoDataSourceType
+FetchMemoCmdList
+UseTransactions
+ADOCodePage
+CodePage
+UseCodePage
diff --git a/props_checkbox.txt b/props_checkbox.txt
new file mode 100644
index 0000000..9424396
--- /dev/null
+++ b/props_checkbox.txt
@@ -0,0 +1,64 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+WordWrap
+AutoSize
+Picture
+DownPicture
+DisabledPicture
+Alignment
+Centered
+BackStyle
+Caption
+Value
+ControlSource
+Enabled
+HelpContextID
+WhatsThisHelpID
+MousePointer
+MouseIcon
+SpecialEffect
+StatusBarText
+Style
+TabStop
+ToolTipText
+TerminateRead
+Visible
+PicturePosition
+PictureMargin
+PictureSpacing
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledForeColor
+DisabledBackColor
+RightToLeft
+ReadOnly
+Themes
+Name
diff --git a/props_collection.txt b/props_collection.txt
new file mode 100644
index 0000000..ef9663c
--- /dev/null
+++ b/props_collection.txt
@@ -0,0 +1,8 @@
+Comment
+Tag
+Top
+Left
+Height
+Width
+KeySort
+Name
diff --git a/props_combobox.txt b/props_combobox.txt
new file mode 100644
index 0000000..874d812
--- /dev/null
+++ b/props_combobox.txt
@@ -0,0 +1,89 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+MaxLength
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Alignment
+BoundColumn
+Picture
+PictureSelectionDisplay
+ColumnCount
+ColumnWidths
+RowSourceType
+RowSource
+DisplayValue
+Value
+ControlSource
+Enabled
+FirstElement
+Height
+HelpContextID
+WhatsThisHelpID
+ColumnLines
+IncrementalSearch
+Left
+Margin
+MousePointer
+MouseIcon
+NumberOfElements
+SelectOnEntry
+Sorted
+SpecialEffect
+StatusBarText
+Style
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Visible
+Width
+RightToLeft
+HideSelection
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+SelectedForeColor
+ItemForeColor
+ItemBackColor
+SelectedItemForeColor
+DisabledItemBackColor
+DisabledBackColor
+DisabledForeColor
+SelectedBackColor
+SelectedItemBackColor
+DisabledItemForeColor
+BorderColor
+NullDisplay
+Format
+InputMask
+ItemTips
+BorderStyle
+BoundTo
+IMEMode
+ReadOnly
+DisplayCount
+OLEDropTextInsertion
+Themes
+Name
diff --git a/props_commandbutton.txt b/props_commandbutton.txt
new file mode 100644
index 0000000..1e26968
--- /dev/null
+++ b/props_commandbutton.txt
@@ -0,0 +1,62 @@
+AutoSize
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+WordWrap
+Picture
+DownPicture
+DisabledPicture
+Cancel
+Caption
+Default
+Enabled
+HelpContextID
+WhatsThisHelpID
+MousePointer
+MouseIcon
+StatusBarText
+Style
+TabIndex
+TabStop
+ToolTipText
+TerminateRead
+Visible
+SpecialEffect
+PicturePosition
+PictureMargin
+PictureSpacing
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledForeColor
+DisabledBackColor
+RightToLeft
+Themes
+Alignment
+Name
diff --git a/props_commandgroup.txt b/props_commandgroup.txt
new file mode 100644
index 0000000..7331c06
--- /dev/null
+++ b/props_commandgroup.txt
@@ -0,0 +1,70 @@
+AutoSize
+MemberClassLibrary
+MemberClass
+ButtonCount
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+BackStyle
+BorderStyle
+Value
+ControlSource
+WordWrap
+Picture
+DownPicture
+DisabledPicture
+Cancel
+Caption
+Default
+Enabled
+HelpContextID
+WhatsThisHelpID
+MousePointer
+MouseIcon
+SpecialEffect
+Style
+TabIndex
+TabStop
+TerminateRead
+Visible
+PicturePosition
+PictureMargin
+PictureSpacing
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+BorderColor
+DisabledForeColor
+DisabledBackColor
+RightToLeft
+ToolTipText
+StatusBarText
+Themes
+Alignment
+Name
diff --git a/props_container.txt b/props_container.txt
new file mode 100644
index 0000000..b74ef4e
--- /dev/null
+++ b/props_container.txt
@@ -0,0 +1,36 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Width
+Height
+Picture
+BackStyle
+BorderWidth
+SpecialEffect
+Enabled
+Visible
+MousePointer
+MouseIcon
+TabStop
+HelpContextID
+WhatsThisHelpID
+ColorSource
+ForeColor
+BackColor
+BorderColor
+Style
+ToolTipText
+StatusBarText
+Name
diff --git a/props_control.txt b/props_control.txt
new file mode 100644
index 0000000..0733799
--- /dev/null
+++ b/props_control.txt
@@ -0,0 +1,36 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Width
+Height
+Picture
+BackStyle
+BorderWidth
+SpecialEffect
+Enabled
+Visible
+MousePointer
+MouseIcon
+TabIndex
+TabStop
+HelpContextID
+WhatsThisHelpID
+ColorSource
+ForeColor
+BackColor
+BorderColor
+Style
+ToolTipText
+Name
diff --git a/props_cursor.txt b/props_cursor.txt
new file mode 100644
index 0000000..e912240
--- /dev/null
+++ b/props_cursor.txt
@@ -0,0 +1,17 @@
+Comment
+Tag
+Top
+Left
+Height
+Width
+Alias
+BufferModeOverride
+Order
+OrderDirection
+Database
+CursorSource
+Exclusive
+Filter
+ReadOnly
+NoDataOnLoad
+Name
diff --git a/props_cursoradapter.txt b/props_cursoradapter.txt
new file mode 100644
index 0000000..cd075d5
--- /dev/null
+++ b/props_cursoradapter.txt
@@ -0,0 +1,67 @@
+Comment
+Tag
+Height
+Width
+UseDeDataSource
+SelectCmd
+UpdateCmd
+InsertCmd
+DeleteCmd
+AllowUpdate
+AllowInsert
+AllowDelete
+CursorSchema
+Alias
+BufferModeOverride
+DataSource
+DataSourceType
+InsertCmdDataSource
+InsertCmdDataSourceType
+UpdateCmdDataSource
+UpdateCmdDataSourceType
+DeleteCmdDataSource
+DeleteCmdDataSourceType
+Flags
+CompareMemo
+FetchAsNeeded
+FetchMemo
+Prepared
+SendUpdates
+BatchUpdateCount
+FetchSize
+MaxRecords
+UseMemoSize
+UpdateType
+WhereType
+KeyFieldList
+Tables
+UpdatableFieldList
+UpdateNameList
+ConversionFunc
+AllowSimultaneousFetch
+BreakOnError
+UpdateGramSchemaLocation
+ConflictCheckType
+ConflictCheckCmd
+MapVarchar
+MapBinary
+UseCursorSchema
+NoData
+TimestampFieldList
+InsertCmdRefreshFieldList
+InsertCmdRefreshKeyFieldList
+UpdateCmdRefreshFieldList
+UpdateCmdRefreshKeyFieldList
+RefreshTimestamp
+RefreshCmd
+RefreshCmdDataSource
+RefreshCmdDataSourceType
+InsertCmdRefreshCmd
+UpdateCmdRefreshCmd
+RefreshIgnoreFieldList
+FetchMemoDataSource
+FetchMemoDataSourceType
+FetchMemoCmdList
+UseTransactions
+ADOCodePage
+Name
diff --git a/props_dataenvironment.txt b/props_dataenvironment.txt
new file mode 100644
index 0000000..816a86a
--- /dev/null
+++ b/props_dataenvironment.txt
@@ -0,0 +1,13 @@
+Comment
+Tag
+Top
+Left
+Width
+Height
+OpenViews
+AutoOpenTables
+AutoCloseTables
+InitialSelectedAlias
+DataSource
+DataSourceType
+Name
diff --git a/props_editbox.txt b/props_editbox.txt
new file mode 100644
index 0000000..20da34b
--- /dev/null
+++ b/props_editbox.txt
@@ -0,0 +1,72 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+AddLineFeeds
+Alignment
+AllowTabs
+BackStyle
+BorderStyle
+Enabled
+Format
+Height
+HelpContextID
+WhatsThisHelpID
+HideSelection
+Left
+Margin
+MaxLength
+MousePointer
+MouseIcon
+ReadOnly
+ScrollBars
+SelectOnEntry
+SpecialEffect
+StatusBarText
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Visible
+Width
+PasswordChar
+EnableHyperlinks
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledBackColor
+SelectedForeColor
+DisabledForeColor
+SelectedBackColor
+BorderColor
+Value
+ControlSource
+RightToLeft
+NullDisplay
+IntegralHeight
+IMEMode
+OLEDropTextInsertion
+Themes
+Name
diff --git a/props_form.txt b/props_form.txt
new file mode 100644
index 0000000..6997a24
--- /dev/null
+++ b/props_form.txt
@@ -0,0 +1,91 @@
+DataSession
+ScaleMode
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+Desktop
+ShowWindow
+ScrollBars
+ShowInTaskBar
+DoCreate
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+ShowTips
+BufferMode
+AutoCenter
+Picture
+BorderStyle
+Caption
+ControlBox
+Closable
+FontBold
+FontCondense
+FontExtend
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCharSet
+HalfHeightCaption
+MaxButton
+MinButton
+Movable
+MaxHeight
+MaxWidth
+MinHeight
+MinWidth
+MaxTop
+MaxLeft
+MDIForm
+MousePointer
+MouseIcon
+Visible
+ClipControls
+DrawMode
+DrawStyle
+DrawWidth
+FillStyle
+Enabled
+Icon
+KeyPreview
+TabIndex
+TabStop
+TitleBar
+WindowType
+WindowState
+LockScreen
+AlwaysOnTop
+AlwaysOnBottom
+SizeBox
+ZoomBox
+HelpContextID
+WhatsThisHelpID
+WhatsThisHelp
+WhatsThisButton
+RightToLeft
+DefOleLCID
+MacDesktop
+ColorSource
+ForeColor
+BackColor
+FillColor
+HScrollSmallChange
+VScrollSmallChange
+ContinuousScroll
+Themes
+BindControls
+AllowOutput
+Dockable
+Name
diff --git a/props_formset.txt b/props_formset.txt
new file mode 100644
index 0000000..942e07d
--- /dev/null
+++ b/props_formset.txt
@@ -0,0 +1,14 @@
+DataSession
+Comment
+Tag
+BufferMode
+AutoRelease
+Visible
+WindowList
+WindowType
+ReadSave
+ReadTimeout
+ReadMouse
+ReadCycle
+ReadLock
+Name
diff --git a/props_grid.txt b/props_grid.txt
new file mode 100644
index 0000000..795de87
--- /dev/null
+++ b/props_grid.txt
@@ -0,0 +1,111 @@
+MemberClassLibrary
+MemberClass
+ColumnCount
+Comment
+Tag
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+HeaderClassLibrary
+HeaderClass
+Alignment
+Caption
+Bound
+ColumnOrder
+ControlSource
+CurrentControl
+AllowAddNew
+AllowHeaderSizing
+AllowRowSizing
+ChildOrder
+DeleteMark
+Enabled
+Width
+Movable
+Resizable
+GridLines
+GridLineWidth
+HeaderHeight
+Height
+HelpContextID
+WhatsThisHelpID
+Highlight
+HighlightRow
+HighlightRowLineWidth
+Left
+LinkMaster
+MousePointer
+MouseIcon
+Panel
+PanelLink
+ReadOnly
+RecordMark
+RecordSource
+RecordSourceType
+RelationalExpr
+RowHeight
+Sparse
+Visible
+SelectOnEntry
+DynamicBackColor
+DynamicForeColor
+DynamicFontBold
+DynamicFontItalic
+DynamicFontName
+DynamicFontOutline
+DynamicFontSize
+DynamicFontShadow
+DynamicFontStrikethru
+DynamicFontUnderline
+DynamicAlignment
+DynamicCurrentControl
+DynamicInputMask
+Format
+InputMask
+ForeColor
+BackColor
+Picture
+WordWrap
+ScrollBars
+SplitBar
+StatusBarText
+TabIndex
+TabStop
+ToolTipText
+Top
+Value
+View
+Width
+Partition
+GridLineColor
+HighlightBackColor
+HighlightForeColor
+SelectedItemBackColor
+SelectedItemForeColor
+HighlightStyle
+RightToLeft
+LockColumns
+LockColumnsLeft
+AllowAutoColumnFit
+AllowCellSelection
+Themes
+Optimize
+Name
diff --git a/props_grid_column.txt b/props_grid_column.txt
new file mode 100644
index 0000000..e4a4d58
--- /dev/null
+++ b/props_grid_column.txt
@@ -0,0 +1,50 @@
+Comment
+Tag
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+HeaderClassLibrary
+HeaderClass
+Alignment
+Bound
+ColumnOrder
+ControlSource
+CurrentControl
+Enabled
+Width
+Movable
+Resizable
+ReadOnly
+Sparse
+Visible
+SelectOnEntry
+DynamicBackColor
+DynamicForeColor
+DynamicFontBold
+DynamicFontItalic
+DynamicFontName
+DynamicFontOutline
+DynamicFontSize
+DynamicFontShadow
+DynamicFontStrikethru
+DynamicFontUnderline
+DynamicAlignment
+DynamicCurrentControl
+DynamicInputMask
+Format
+InputMask
+ForeColor
+BackColor
+ToolTipText
+StatusBarText
+MousePointer
+MouseIcon
+Name
diff --git a/props_grid_header.txt b/props_grid_header.txt
new file mode 100644
index 0000000..5e95df5
--- /dev/null
+++ b/props_grid_header.txt
@@ -0,0 +1,24 @@
+Comment
+Tag
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Alignment
+Caption
+ForeColor
+BackColor
+Picture
+WordWrap
+ToolTipText
+StatusBarText
+MousePointer
+MouseIcon
+Name
diff --git a/props_hyperlink.txt b/props_hyperlink.txt
new file mode 100644
index 0000000..43fb29e
--- /dev/null
+++ b/props_hyperlink.txt
@@ -0,0 +1,7 @@
+Comment
+Tag
+Top
+Left
+Height
+Width
+Name
diff --git a/props_image.txt b/props_image.txt
new file mode 100644
index 0000000..76ab678
--- /dev/null
+++ b/props_image.txt
@@ -0,0 +1,31 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Picture
+BackStyle
+BorderStyle
+Height
+HelpContextID
+WhatsThisHelpID
+Left
+MousePointer
+MouseIcon
+Top
+Visible
+Width
+ColorSource
+BorderColor
+ToolTipText
+StatusBarText
+Themes
+Name
diff --git a/props_label.txt b/props_label.txt
new file mode 100644
index 0000000..18bbd2f
--- /dev/null
+++ b/props_label.txt
@@ -0,0 +1,51 @@
+AutoSize
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+WordWrap
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Alignment
+BackStyle
+BorderStyle
+Caption
+Height
+HelpContextID
+WhatsThisHelpID
+Left
+MousePointer
+MouseIcon
+Top
+Visible
+Width
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledForeColor
+DisabledBackColor
+RightToLeft
+ToolTipText
+StatusBarText
+Style
+Rotation
+Name
diff --git a/props_line.txt b/props_line.txt
new file mode 100644
index 0000000..ef86948
--- /dev/null
+++ b/props_line.txt
@@ -0,0 +1,33 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+BorderStyle
+BorderWidth
+DrawMode
+Height
+HelpContextID
+WhatsThisHelpID
+Left
+MousePointer
+MouseIcon
+Top
+Visible
+Width
+LineSlant
+ColorSource
+BorderColor
+ToolTipText
+StatusBarText
+PolyPoints
+Rotation
+Name
diff --git a/props_listbox.txt b/props_listbox.txt
new file mode 100644
index 0000000..654619e
--- /dev/null
+++ b/props_listbox.txt
@@ -0,0 +1,74 @@
+Comment
+Tag
+DragMode
+DragIcon
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+BoundColumn
+Picture
+ColumnCount
+ColumnWidths
+RowSourceType
+RowSource
+Value
+ControlSource
+Enabled
+FirstElement
+Height
+HelpContextID
+WhatsThisHelpID
+ColumnLines
+IncrementalSearch
+Left
+MousePointer
+MouseIcon
+MoverBars
+MultiSelect
+NumberOfElements
+Sorted
+SpecialEffect
+StatusBarText
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Visible
+Width
+ColorSource
+ColorScheme
+DisabledBackColor
+ItemForeColor
+ItemBackColor
+DisabledItemBackColor
+SelectedItemForeColor
+SelectedItemBackColor
+DisabledItemForeColor
+DisabledForeColor
+BorderColor
+RightToLeft
+IntegralHeight
+NullDisplay
+ItemTips
+BoundTo
+Themes
+AutoHideScrollbar
+Name
diff --git a/props_olebound.txt b/props_olebound.txt
new file mode 100644
index 0000000..2ea478d
--- /dev/null
+++ b/props_olebound.txt
@@ -0,0 +1,30 @@
+Comment
+Tag
+DragMode
+DragIcon
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+Visible
+Enabled
+TabStop
+Anchor
+ControlSource
+Stretch
+MousePointer
+MouseIcon
+AutoSize
+Sizable
+HelpContextID
+WhatsThisHelpID
+HostName
+AutoVerbMenu
+AutoActivate
+ToolTipText
+StatusBarText
+Name
diff --git a/props_optiongroup.txt b/props_optiongroup.txt
new file mode 100644
index 0000000..42333d4
--- /dev/null
+++ b/props_optiongroup.txt
@@ -0,0 +1,71 @@
+AutoSize
+MemberClassLibrary
+MemberClass
+ButtonCount
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+Picture
+DownPicture
+DisabledPicture
+PicturePosition
+PictureMargin
+PictureSpacing
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Alignment
+BackStyle
+BorderStyle
+Caption
+Value
+ControlSource
+Enabled
+Height
+HelpContextID
+WhatsThisHelpID
+Left
+MousePointer
+MouseIcon
+SpecialEffect
+StatusBarText
+Style
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Width
+WordWrap
+TabIndex
+Visible
+AutoSize
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledForeColor
+DisabledBackColor
+RightToLeft
+ToolTipText
+StatusBarText
+Themes
+Name
diff --git a/props_optiongroup_option.txt b/props_optiongroup_option.txt
new file mode 100644
index 0000000..b9301f9
--- /dev/null
+++ b/props_optiongroup_option.txt
@@ -0,0 +1,61 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+Picture
+DownPicture
+DisabledPicture
+PicturePosition
+PictureMargin
+PictureSpacing
+DefTop
+DefWidth
+Alignment
+BackStyle
+Caption
+Value
+ControlSource
+Enabled
+Height
+HelpContextID
+WhatsThisHelpID
+Left
+MousePointer
+MouseIcon
+SpecialEffect
+StatusBarText
+Style
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Visible
+Width
+WordWrap
+AutoSize
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledForeColor
+DisabledBackColor
+RightToLeft
+Themes
+Name
diff --git a/props_pageframe.txt b/props_pageframe.txt
new file mode 100644
index 0000000..09ddc53
--- /dev/null
+++ b/props_pageframe.txt
@@ -0,0 +1,39 @@
+ErasePage
+MemberClassLibrary
+MemberClass
+PageCount
+TabStretch
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+TabStyle
+DefTop
+DefLeft
+DefHeight
+DefWidth
+ActivePage
+Enabled
+Top
+Left
+Width
+Height
+MousePointer
+MouseIcon
+Tabs
+TabStop
+Visible
+ColorSource
+RightToLeft
+HelpContextID
+WhatsThisHelpID
+TabOrientation
+Themes
+ToolTipText
+StatusBarText
+Name
diff --git a/props_pageframe_page.txt b/props_pageframe_page.txt
new file mode 100644
index 0000000..239147d
--- /dev/null
+++ b/props_pageframe_page.txt
@@ -0,0 +1,33 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Caption
+Picture
+Enabled
+HelpContextID
+WhatsThisHelpID
+PageOrder
+ColorSource
+BackColor
+ForeColor
+ToolTipText
+StatusBarText
+MousePointer
+MouseIcon
+Name
diff --git a/props_pre_v1_19_22.txt b/props_pre_v1_19_22.txt
new file mode 100644
index 0000000..2b7babd
--- /dev/null
+++ b/props_pre_v1_19_22.txt
@@ -0,0 +1,132 @@
+FRXDataSession
+ErasePage
+PageCount
+ActivePage
+ButtonCount
+ColumnCount
+Value
+Comment
+ControlSource
+DataSession
+DeleteMark
+ScaleMode
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Picture
+Stretch
+BackStyle
+BorderStyle
+BorderWidth
+Enabled
+Top
+Left
+Height
+Width
+MousePointer
+MouseIcon
+Visible
+MaxLength
+Alias
+BufferModeOverride
+Order
+OrderDirection
+CursorSource
+Exclusive
+Filter
+Panel
+ReadOnly
+RecordSource
+RecordSourceType
+NoDataOnLoad
+OpenViews
+AutoOpenTables
+AutoCloseTables
+InitialSelectedAlias
+DataSource
+DataSourceType
+Desktop
+ShowWindow
+ScrollBars
+ShowInTaskBar
+DoCreate
+Tag
+ShowTips
+BufferMode
+AutoCenter
+AutoSize
+WordWrap
+Caption
+ControlBox
+Closable
+Curvature
+FontBold
+FontCondense
+FontExtend
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+HalfHeightCaption
+Margin
+MaxButton
+MinButton
+Movable
+MaxHeight
+MaxWidth
+MinHeight
+MinWidth
+MaxTop
+MaxLeft
+MDIForm
+ClipControls
+DrawMode
+DrawStyle
+DrawWidth
+FillStyle
+Icon
+KeyPreview
+TabIndex
+TabStop
+TitleBar
+WindowType
+WindowState
+LockScreen
+AlwaysOnTop
+AlwaysOnBottom
+SizeBox
+SpecialEffect
+ZoomBox
+ZOrderSet
+HelpContextID
+WhatsThisHelpID
+WhatsThisHelp
+WhatsThisButton
+RightToLeft
+DefOleLCID
+MacDesktop
+ColorSource
+ForeColor
+DisableForeColor
+BackColor
+FillColor
+HScrollSmallChange
+VScrollSmallChange
+ContinuousScroll
+BindControls
+AllowOutput
+Dockable
+_memberdata
+Themes
diff --git a/props_projecthook.txt b/props_projecthook.txt
new file mode 100644
index 0000000..02118a4
--- /dev/null
+++ b/props_projecthook.txt
@@ -0,0 +1,7 @@
+Comment
+Tag
+Height
+Width
+OLEDropMode
+OLEDropEffects
+Name
diff --git a/props_relation.txt b/props_relation.txt
new file mode 100644
index 0000000..dfefa06
--- /dev/null
+++ b/props_relation.txt
@@ -0,0 +1,10 @@
+Comment
+Tag
+Height
+Width
+ParentAlias
+RelationalExpr
+ChildAlias
+ChildOrder
+OneToMany
+Name
diff --git a/props_reportlistener.txt b/props_reportlistener.txt
new file mode 100644
index 0000000..87a798d
--- /dev/null
+++ b/props_reportlistener.txt
@@ -0,0 +1,18 @@
+Comment
+Tag
+Height
+Width
+CurrentPass
+TwoPassProcess
+FRXDataSession
+PreviewContainer
+DynamicLineHeight
+CommandClauses
+AllowModalMessages
+QuietMode
+CurrentDataSession
+SendGDIPlusImage
+PrintJobName
+CallAdjustObjectSize
+CallEvaluateContents
+Name
diff --git a/props_separator.txt b/props_separator.txt
new file mode 100644
index 0000000..71d1cc1
--- /dev/null
+++ b/props_separator.txt
@@ -0,0 +1,10 @@
+Comment
+Tag
+Top
+Left
+Height
+Width
+Enabled
+Style
+Visible
+Name
diff --git a/props_shape.txt b/props_shape.txt
new file mode 100644
index 0000000..4fb2aae
--- /dev/null
+++ b/props_shape.txt
@@ -0,0 +1,40 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+Anchor
+BackStyle
+BorderStyle
+BorderWidth
+Curvature
+DrawMode
+FillStyle
+HelpContextID
+WhatsThisHelpID
+MousePointer
+MouseIcon
+ToolTipText
+StatusBarText
+Visible
+SpecialEffect
+ColorSource
+ColorScheme
+BackColor
+FillColor
+BorderColor
+Style
+PolyPoints
+Rotation
+Name
diff --git a/props_spinner.txt b/props_spinner.txt
new file mode 100644
index 0000000..32f3700
--- /dev/null
+++ b/props_spinner.txt
@@ -0,0 +1,69 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Alignment
+BorderStyle
+Enabled
+Height
+HelpContextID
+WhatsThisHelpID
+HideSelection
+Increment
+InputMask
+KeyboardHighValue
+KeyboardLowValue
+Left
+Margin
+MousePointer
+MouseIcon
+ReadOnly
+SelectOnEntry
+SpecialEffect
+SpinnerHighValue
+SpinnerLowValue
+StatusBarText
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Visible
+Width
+Format
+ColorSource
+ColorScheme
+BackColor
+ForeColor
+DisabledBackColor
+SelectedForeColor
+DisabledForeColor
+SelectedBackColor
+BorderColor
+Value
+ControlSource
+RightToLeft
+NullDisplay
+OLEDropTextInsertion
+Themes
+Name
diff --git a/props_textbox.txt b/props_textbox.txt
new file mode 100644
index 0000000..cc41cd4
--- /dev/null
+++ b/props_textbox.txt
@@ -0,0 +1,82 @@
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DragMode
+DragIcon
+FontBold
+FontItalic
+FontName
+FontOutline
+FontShadow
+FontSize
+FontStrikethru
+FontUnderline
+FontCondense
+FontExtend
+FontCharSet
+DateFormat
+DateMark
+Century
+Hours
+Seconds
+StrictDateEntry
+Anchor
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Alignment
+BackStyle
+BorderStyle
+Value
+ControlSource
+Enabled
+Format
+Height
+HelpContextID
+WhatsThisHelpID
+HideSelection
+InputMask
+Left
+Margin
+MaxLength
+MousePointer
+MouseIcon
+ReadOnly
+SelectOnEntry
+SpecialEffect
+StatusBarText
+TabIndex
+TabStop
+TerminateRead
+ToolTipText
+Top
+Visible
+Width
+Style
+MemoWindow
+OpenWindow
+PasswordChar
+EnableHyperlinks
+ColorSource
+ColorScheme
+ForeColor
+BackColor
+DisabledBackColor
+SelectedForeColor
+DisabledForeColor
+SelectedBackColor
+BorderColor
+RightToLeft
+NullDisplay
+IntegralHeight
+IMEMode
+OLEDropTextInsertion
+Themes
+AutoComplete
+AutoCompSource
+AutoCompTable
+Name
diff --git a/props_timer.txt b/props_timer.txt
new file mode 100644
index 0000000..043b06d
--- /dev/null
+++ b/props_timer.txt
@@ -0,0 +1,13 @@
+Comment
+Tag
+DefTop
+DefLeft
+DefHeight
+DefWidth
+Top
+Left
+Height
+Width
+Enabled
+Interval
+Name
diff --git a/props_toolbar.txt b/props_toolbar.txt
new file mode 100644
index 0000000..6d5328f
--- /dev/null
+++ b/props_toolbar.txt
@@ -0,0 +1,31 @@
+ScaleMode
+Comment
+Tag
+OLEDragMode
+OLEDragPicture
+OLEDropMode
+OLEDropEffects
+DefTop
+DefLeft
+Caption
+DataSession
+Enabled
+HelpContextID
+WhatsThisHelpID
+KeyPreview
+Left
+LockScreen
+MousePointer
+MouseIcon
+Movable
+ShowTips
+Sizable
+Top
+Visible
+ColorSource
+ForeColor
+BackColor
+ControlBox
+ShowWindow
+Themes
+Name
diff --git a/props_xmladapter.txt b/props_xmladapter.txt
new file mode 100644
index 0000000..6e869f4
--- /dev/null
+++ b/props_xmladapter.txt
@@ -0,0 +1,29 @@
+Comment
+Tag
+Height
+Width
+PreserveWhiteSpace
+NoCpTrans
+MapN19_4ToCurrency
+DisableEncode
+IsDiffgram
+XMLName
+XMLNamespace
+XMLPrefix
+FormattedOutput
+ForceCloseTag
+RespectCursorCP
+UTF8Encoded
+XMLSchemaLocation
+WrapMemoInCDATA
+WrapCharInCDATA
+Unicode
+MapVarchar
+MapBinary
+RespectNesting
+SelectionNamespaces
+XMLNameIsXPath
+DeclareXMLPrefix
+CodePage
+UseCodePage
+Name
diff --git a/props_xmlfield.txt b/props_xmlfield.txt
new file mode 100644
index 0000000..d276fa2
--- /dev/null
+++ b/props_xmlfield.txt
@@ -0,0 +1,25 @@
+Comment
+Tag
+Height
+Width
+Alias
+XMLName
+XSDtype
+XSDtotalDigits
+XSDfractionDigits
+XSDmaxLength
+IsAttribute
+DataType
+MaxLength
+FractionDigits
+NoCpTrans
+Unicode
+IsNull
+IsBinary
+IsBase64
+WrapInCDATA
+DisableEncode
+Keyfield
+XMLNameIsXPath
+CodePage
+Name
diff --git a/props_xmltable.txt b/props_xmltable.txt
new file mode 100644
index 0000000..0ebf1e5
--- /dev/null
+++ b/props_xmltable.txt
@@ -0,0 +1,16 @@
+Comment
+Tag
+Height
+Width
+Alias
+XMLName
+XMLNamespace
+XMLPrefix
+ChildTable
+NestedInto
+FirstNestedTable
+NextSiblingTable
+XMLNameIsXPath
+DeclareXMLPrefix
+CodePage
+Name