La Web del Programador: Comunidad de Programadores
 
    Pregunta:  469 - EJECUTABLE EN VISUAL FOX PRO
Autor:  Arturito
Quiero correr un EXE hecho en Visual FoxPro 5.0 pero no quiero usar el Run Time de VFP, Ya puse en mi forma Principal el READ EVENTS, pero al jalar otra forma que tiene declarado un data enviroment, me saca el error de file Acces denied, Ya probe haciendo las formas Modal pero al salir de la Ultima forma no me deja y dice Visual Foxpro cannot quit.

Por favor ayudenme, lo unico que deseo es crear el EXE y poderlo cargar con un acceso ndirecto como cualquier otro ejecutable
Gracias de antemano y saludos desde México


  Respuesta:  Miguel Cruz
Hola!, para hacer el exe en vfp5.0 o vfp 6.0 de preferencia debes tener un programa principal de inicio, el cual puede ser el siguiente...

set defa to " " (entre la comillas pones la direccion en donde tienes tus archivos)
set procedure to " " (entre la comillas pones la direccion en donde guardaras este programa, tambien tienes que poner el nombre del programa, programa.prg)
_screen.visible=.F. (esto por si quieres que tu sistema este afuera de vfp)
do form form1 (form1 es el nombre del formulario de inicio)
read events
Messagebox (" ")(este paso es por si quieres que cuando salga el sistema mande un mensage, por ejemplo sesion finalizada)(para cambiarle el titulo al mensage se pone el messagebox diferente, y tambien para el icono)
enproc
y es todo...

ya que guardes este programa, en el proyecto lo seleccionas con el segundo boton del mouse y le das en establecer como principal, esto para que cuando crees el exe sea lo primero que ejecute y no tengas errores.
Nota:en los formularios donde tengas la opcion de salir del sistema te recomendaria que pusiereas lo sig.

thisform.release (para que cierre el form, o puedes usar release thisform, en fin es lo mismo)
clear windows (esto por si pusistes un valor en el escritorio de vfp)
clear events (para cerrar el read events del programa y puedas salir de vfp)
return (regreso a vfp)
si no quieres que te regrese a vfp en el programa principal donde esta un messagebox, abajo puedes ejecutar un programa que cierre vfp, por ejemplo este demasiado sencillo...

quit

y lo guardas como program2 o como quieras, y en el programa principal lo ejecutas abajo del messagebox como habia dicho.

bueno esto es para que funcione bien el exe y no marque ningun error y puedas salir de vfp sin prolamas desde un sistema o algo asi, el exe lo haces desde el examinador de proyecto, presionas el boton builder o algo asi, seleccionas ejecutable(exe) y listo,

otra recomendacion es que antes de hacer el exe crees un dll, para esto tienes que tener una clase publica, si no sabes como hacerla, ahi va...

abres el form con el que inicias, le das en archivo y guardar como clase.
en el examidador de proyectos agregas la clase y le das modificar, en el menu clase le das en propiedades, y en un cadro que aparece en la mitan de esa pantalla seleccionas clase publica. ahora si puedes hacer el dll y despues el exe, para esto no tienes que tener ningun nombre repetido por que sino vfp cree que es un solo archivo y te los revuelve.

esto lo haces muy rapido, pero en texto se ve que esmucho pero no, SUERTE!.

por mi parte es todo y espero que funcione bien. espero que esta respuesta sea util para machas personas con este problema, en esta respuesta tambien creo que aclaro como hacer un dll, un exe, una clase, una clase publica, un programa principal, como ocultar vfp, como solucionar el problema de "Microsoft Visual Foxpro no se puede cerrar" y nose que otros mas.
Adios.

  Respuesta:  Santiago Starita
Lo unico que tienes que hacer es en el prg principal o como una nueva opcion de menu que puede ser "Salir" poner un "Clear Events" y tu ejecutable saldra a Windows.

  Respuesta:  Evelyn
Para crear el ejecutable, anda al Menu Archivo, Nuevo proyecto, en Codigo, Programas agrega el programa principal que llama al formulario , automaticamente se agregaran los demas componentes de tu sistema.
Luego click en Generar, escoge crear ejecutable y Aceptar.

Tu *.exe se habra creado.