Changeset: 237 fdbozzo - 07/05/2014 20:47:21:

- Agregado soporte de evaluación de propiedades desde archivo externo (props_*.txt)
- Agregado soporte de evaluación de propiedades por clase
- La propiedad Picture de una clase form se pierde y no muestra la imagen. No ocurre con la propiedad Picture de los controles (Fidel Charny)
- Algunas opciones del optiongroup pierden el width cuando se subclasan de una clase con autosize=.T. (Miguel Duran)
This commit is contained in:
fdbozzo
2014-05-13 21:25:27 +02:00
parent 1ba0878000
commit 03e4452dba
101 changed files with 5359 additions and 125 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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<73> vac<61>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

View File

@@ -2,12 +2,42 @@
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>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

Binary file not shown.

Binary file not shown.

View File

@@ -2,11 +2,12 @@
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>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="" />
*<DefinedPropArrayMethod>
*p: a_otra
*a: ^a_prop[1,0] && array
*a: a_prop[1,0] && array
*p: _prop
*</DefinedPropArrayMethod>
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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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<63>n de cl_CommandGroup
*< CLASSDATA: Baseclass="commandgroup" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\..\include\principal.h"
*<DefinedPropArrayMethod>
*p: una_prop_cmgroup && Con comentario, pero sin valor
*</DefinedPropArrayMethod>
@@ -46,13 +49,13 @@ DEFINE CLASS cl_form AS form OLEPUBLIC && mi OLE server DLL
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
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 = <VFPData>
@@ -153,7 +157,7 @@ DEFINE CLASS cl_imagen AS image OLEPUBLIC && otro ole
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
Height = 16
@@ -180,8 +184,8 @@ DEFINE CLASS cl_optiongroup AS optiongroup && descripcion
*< CLASSDATA: Baseclass="optiongroup" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
TESTS/PCT_DLL.dll Normal file

Binary file not shown.

View File

@@ -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

22
TESTS/pct_dll.txt Normal file
View File

@@ -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

201
TESTS/readme.txt Normal file
View File

@@ -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

View File

@@ -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<74> el archivo "' + lc_OutputFile + '"'
ENDIF
LOCATE FOR UNIQUEID==lcUniqueID
LOCATE FOR UniqueID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontr<74> 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<74> el archivo "' + lc_OutputFile + '"'
ENDIF
LOCATE FOR UNIQUEID==lcUniqueID
LOCATE FOR UniqueID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontr<74> 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<74> el registro de cabecera "' + UNIQUEID + '"'
ERROR 'No se encontr<74> 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<74> el registro de cabecera "' + UNIQUEID + '"'
ERROR 'No se encontr<74> 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<74> el registro de cabecera "' + UNIQUEID + '"'
ERROR 'No se encontr<74> 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<74> el registro de cabecera "' + UNIQUEID + '"'
ERROR 'No se encontr<74> 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<65>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<73>ticos y detectar fallos al ensamblar el binario" )
THIS.messageout( "lcBMP0 = " + lcBMP0 )
THIS.messageout( "lcBMP1 = " + lcBMP1 )
THIS.asserttrue( FILETOSTR( lcBMP0 ) == FILETOSTR( lcBMP1 ), "COMPARACI<43>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

File diff suppressed because it is too large Load Diff