FoxPro/Visual FoxPro - Incluir en ejecutable mis clases .vcx

   
Vista:

Incluir en ejecutable mis clases .vcx

Publicado por Juan (71 intervenciones) el 19/08/2013 11:23:03
Buenos días, me gustaría saber si se puede hacer que cuando se cree un ejecutable en visual foxpro 9, me incluya las clases que utilizo y no tenga que copiar en el cliente mis archivos .vcx

Yo en el PRG principar hago lo siguiente:

set classlib to m:\clases\controles_main_xp.vcx additive
set classlib to m:\clases\controles_main_xp_aux.vcx additive

En el proyecto tengo esas mismas clases incluidas, pero cuando creo el ejecutable y lo pruebo en otra máquina me da errores. Si copiar en esa ruta mis .vcx me funciona correctamente.

Tengo siempre que llevar mis archivos de clases y copiarlos con mi aplicación o puedo incluirlos de alguna manera sin tener que llevarlos aparte.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Incluir en ejecutable mis clases .vcx

Publicado por Fidel (558 intervenciones) el 19/08/2013 15:41:34
Si tienes las bibliotecas vcx incluidas en el proyecto no necesitas utilizar Set Classlib. Cuando generas el ejecutable, las bibliotecas vcx quedan incluidas en el ejecutable.
En lugar de eso, tienes dos opciones:
1) Utilizar la función NewObject()
2) Utilizar clases no visuales (Custom) y pegarla al form que la necesite.

En el programa de inicio pongo:
SET PATH TO DATA,FORMS,GRAPHICS,;
HELP,INCLUDE,LIBS,MENUS,;
PROGS,REPORTS,TEMP

Luego, por ejemplo para llamar a una calculadora que está en una clase:
IF VARTYPE(zCalcu2)="O"
zCalcu2.WindowState=0
zCalcu2.Show()
ELSE
release zCalcu2
public zCalcu2
zCalcu2=NEWOBJECT("FrmZCalcu2","thCalc") && acá se llama a la clase
* FrmZCalcu2" es un Form de clase y "ThCalc" es la biblioteca de clases.
* En este caso no tiene parámetros

IF VARTYPE(zCalcu2)="O"
zCalcu2.Show() && la clase es un form
ENDIF
ENDIF

Esto llama a un almanaque que está en una bibilioteca
RELEASE almana
PUBLIC almana
almana=NEWOBJECT("frmManak","mzManak")

EStudia la función NewObject.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar