¿Cómo se crea un archivo config. Fpw en foxpro 9.0...? Estoy tratando de realizar un ejecutable y me dicen que coloque un código en este archivo pero ni siquiera se que es eso...
2 respuestas
Respuesta de junio0or
1
1
junio0or, Hola ... Estudio Ingenieria en Sistemas, con experiencia en...
Primero te explicare que son los archivos config. Fpw estos son archivos que se ejecutan por windows, es decir son archivos que windows los interpreta, y lo único que haces son propiedades o eventos muy específicos de un programa... Por ejemplo te has dado cuenta que la fecha, o la hora o te sale una pantalla blanca al iniciar la aplicación, entonces desde ese archivo, pones comandos como Screen = Off SET CENTURY ON/OFF SET CLOCK ON/OFF SET DATE SET DELETE ON/OFF SET ECHO ON/OFF SET SYSMENU u otros comandos más específicos. pero para hacer un ejecutable, lo que tienes que hacer es desde un prg, o un formulario, Si es un prg existen 2 formas de hacerlo, las cuales son por la ventana de windows o por un formulario Si es por windows seria algo asi ... _screen.BackColor = RGB(255,128,0) _screen.Caption = "Proyecto De Cintia" _screen.MaxButton = .F. _screen.MinButton = .F. _screen.WindowState = 2 _screen.ControlBox = .F. Do menu_primero.mpr Read EVENTS el do menu es un menu, pero lo puedes oviar. la otra forma, seria por medio de un formulario. _screen.Visible = .F. DO FORM principal READ events Para este caso los formularios deben de estar en nivel superior. Recuerda siempre el read events y la ultima forma seria que en el formulario que desees, le pongas en el evento init o en el load read events para este caso los formularios deben de estar en nivel superior.
Si deseas realizar un ejecutable no necesitas un archivo de configuración, ¿si de pronto te sale algún error en el sistema podrías describírmelo para ver cuál es la causa?
Este codigo lo tengo en el main.prg, tome el codigo de otra aplicacion y solo cambie la ruta para adaptarla a mi carpeta. El problema es que me sale un pequeño parpadeo antes de abrir el formulario entrada.scx, ademas me dice que cerrar.prg no existe SET DECIMALS TO 2 ON SHUTDOWN cerrar () application.caption="Sistemas I.V.A Empresa - application.caption" CLEAR _screen.windowstate=2 _screen.MaxButton=.f. _screen.MinButton=.f. _screen.Caption=" Sistemas I.V.A Empresa " _screen.backcolor=8421376 _screen.Picture="c:\eli\screens\FACHADA2.jpg" _screen.AutoCenter =.f. _screen.Icon = "C:\eli\iconos\PC.ICO" * 16776960 agua marina _screen.BackColor=10485760 SET DATE FRENCH SET DEFAULT TO "c:\eli" SET DELETED ON DO FORM entrada.scx READ EVENTS PROCEDURE cerrar () IF MESSAGEBOX("DESEA SALIR DEL SISTEMA IVA EMPRESA?",4+32,"SALIR") = 6 QUIT ENDIF ENDPROC *CLEAR En el formulario entrada tengo un timer con el siguiente codigo if cont<5 if thisform.carga.left<(thisform.meta.left+thisform.meta.width-thisform.carga.width-2.5) thisform.carga.left=thisform.carga.left+1 else thisform.carga.left=thisform.meta.left+2.5 cont=cont+1 endif ENDIF IF cont==5 DO FORM login.scx CLEAR EVENTS Thisform.release Endif en el metodo load de el formulario entrada tengo lo siguiente public cont cont=1 Todos los formularios están en showWindow 2-As Top Level Form. ¿Qué me recomiendas hacer..?
Te voy a explicar un par de detalles primero: 1. Todos los procedimientos de rutina del sistema debes almacenarlo en un archivo prg el cual no es el programa principal, podría llamarse por ejemplo utilidades. Prg, allí creas procedimientos de trabajo y validación del sistema como por ejemplo el método cerrar que es el que te causa problemas: Procedure Cerrar If Messagebox("¿Desea salir del sistema?", 32, "Salir") = 7 && No Return .F. Endif Clear Dlls Release All Extended Clear All On Shutdown Quit EndProc 2. Importante con respecto a lo último que me preguntaste: Los formularios no deben tener la propiedad ShowWindow en valor 2 sino en valor 0 (En pantalla de Visual FoxPro). En este orden de ideas, te recomiendo organizar tu proyecto en una carpeta principal la cual contenga otras carpetas las cuales estás contengan los archivos de tu proyecto por ejemplo La carpeta principal esté el archivo pjx de tu proyecto y esta misma contenga las los demás componentes organizados en carpetas ejemplo: Carpetas que se llamen Formulario, Menús, Datos, Informes, Programas, Ayuda, Clases, etc. Y finalmente el el programa principal principal de tu proyecto podrías escribir un código como el siguiente: Close All Clear If SetPath() Set Decimals To 2 Set Procedure To "Utilidades.prg" On ShutDown Do Cerrar && Esto funciona si se establece Set Procedure correctamente. With _Screen .Caption="Sistemas I.V.A Empresa - application.caption" .Windowstate=2 .Caption=" Sistemas I.V.A Empresa " .Backcolor=8421376 .Picture="c:\eli\screens\FACHADA2.jpg" .AutoCenter =.f. .Icon = "C:\eli\iconos\PC.ICO" .BackColor=10485760 EndWith Set Talk Off Set Deleted Off Set Multilocks On Set Date To DMY If EntrarAlSistema() Read Evens Endif Endif Function SetPath() && Debería ir en el programa principal. Local lcSys16, lcProgram lcSys16 = Sys(16) lcProgram = Substr(lcSys16, AT(":", lcSys16) - 1) CD Left(lcProgram, Rat("\", lcProgram)) If Right(lcProgram, 3) = "FXP" CD .. Endif Set Path To Programas, Formularios, Gráficos,; Menus, Include, Informes, Clases, Ayuda && Estas son las carpetas Set Classlib to Controles, Diálogos, principal && Son clases que se crean en los proyectos si existen. EndFunc Function EntrarAlSistema() && Debe ir en el archivo utilidades.prg Local lcValor Do Form Entrada With .T. To lcValor Return lcValor Endfunc Y a modo de información el archivo Config. Fpw no es más que un archivo de configuración de Windows donde se guardan los comandos Set de Visual FoxPro y por tal razón este archivo no tiene nada que ver en cuanto a la creación de ejecutables y de la misma manera no afecta en nada la creación de ejecutables.
Muchísimas gracias... Soy muy nuevo en esto aunque poco a poco voy comprendiendo mejor las cosas... Gracias por tu valiosa ayuda y tu gran disposición al momento de responder las preguntas.