como ago ejecutables en foxpro no visual foxpro

emanuel
28 de Octubre del 2003
como ago para ser ejecutables para foxpro

Alex
28 de Octubre del 2003
Quetal emanuel.

Necesitas crear un programa principal (PRG) como este.

MVCOUNT = 2448
Public cUsuario

close all
set stat off
set talk off
set notify off
set safety off
set multilocks on
set century on
set status bar on
SET EXCLUSIVE OFF
SET DATE TO FRENCH

DECLARE INTEGER GetPrivateProfileString IN Win32API AS GetPrivStr ;
String cSection, String cKey, String cDefault, String @cBuffer, ;
Integer nBufferSize, String cINIFile

DECLARE INTEGER WritePrivateProfileString IN Win32API AS WritePrivStr ;
String cSection, String cKey, String cValue, String cINIFile


WITH _Screen
.LockScreen=.T.
.BackColor=RGB(255,255,255)
.BorderStyle=3
.Closable=.F.
.ControlBox=.T.
.MaxButton=.T.
.MinButton=.T.
.Movable=.T.
.Windowstate=2
.Icon='Filer.ico'
.Picture='dibujo.bmp'
.TitleBar=1
.SizeBox=.T.
.Caption=' Descripciòn de tu programa....'
.LockScreen=.F.
ENDWITH

Do menu.mpr

READ EVENTS

Despues lo compilas, y lo agregas a tu proyecto, si estas trabajando sin proyecto entonces escribe lo siguiente.

BUILD PROJECT <Nombre del Proyecto> FROM <Nombre del Programa Pincipal PRG>

Despues esto
BUIL EXE <Nombre del EXE> FROM <Nombre con que creaste tu proyecto>


Alex Vargas

Alex
28 de Octubre del 2003
Disculpa el programa principal que te escribì es para VFP no para FoxPro DOS.

Pero el còdigo para crear el proyecto y el EXE es el mismo.

Podes crear una pantalla de inicio como esta que hice hace varios años.

CLEAR ALL
SET TALK OFF
SET CONSOLE OFF
HIDE WINDOW COMMAND
SET DATE TO BRITISH
CLOSE ALL
PRIVATE X
X = 1
IF FILE('sasegu1.idx')
DELETE FILE sasegu1.idx
ENDIF
IF USED('sasegu1')
SELECT SASEGU1
INDEX ON USER+CLAVE TO sasegu1.idx
SET INDEX TO sasegu1.idx
SET ORDER TO sasegu1
ELSE
SELECT 0
USE sasegu1
INDEX ON USER+CLAVE TO sasegu1.idx
SET INDEX TO sasegu1.idx
SET ORDER TO sasegu1
ENDIF
DEFINE WINDOW PASEG1 FROM INT((SROWS()-11)/2), INT((SCOLS()-65)/2) TO INT((SROWS()-11)/2)+10, INT((SCOLS()-65)/2)+64 NOFLOAT NOCLOSE SHADOW TITLE '[ Alarmas Nacionales ]' NOMINIMIZE DOUBLE COLOR SCHEME 7
IF WVISIBLE('paseg1')
ACTIVATE WINDOW SAME PASEG1
ELSE
ACTIVATE WINDOW NOSHOW PASEG1
ENDIF
@ 0, 0 SAY 'Sapseg0'
@ 0, 22 SAY 'Sistema de Planillas' COLOR W+/N
@ 1, 15 TO 3, 49 '*' COLOR GR+/R*
@ 2, 21 SAY 'Pantalla de Acceso' COLOR W+/N
@ 5, 14 SAY 'Nombre del Usuario:' SIZE 1, 19, 0
@ 6, 14 SAY 'Clave:' SIZE 1, 9, 0 COLOR GR+/R
@ 8, 16 SAY 'Presione "ESC" para Salir...' SIZE 1, 28, 0 COLOR W+/N
DO WHILE X<4 .AND. LASTKEY()<>27
STORE SPACE(8) TO PID
STORE SPACE(8) TO PPASSW
@ 5, 37 GET PID DEFAULT ' ' SIZE 1, 8 COLOR SCHEME 5
READ
IF LASTKEY()=27
X = 4
CLEAR
RELEASE WINDOW PASEG1
EXIT
ENDIF
@ 6, 37 GET PPASSW DEFAULT ' ' SIZE 1, 8 COLOR N,N
READ
IF LASTKEY()=27
X = 4
RELEASE WINDOW PASEG1
EXIT
ENDIF
SELECT SASEGU1
REINDEX
GOTO TOP
LOCATE FOR PID=USER .AND. PPASSW=CLAVE
IF FOUND()
SELECT 0
USE SASEGU0
IF EOF()
APPEND BLANK
ENDIF
REPLACE USER WITH PID
REPLACE CLAVE WITH PPASSW
REPLACE FECHA WITH DATE()
USE
RELEASE WINDOW PASEG1
CLOSE ALL
DO SAMENU.PRG
X = 4
ELSE
WAIT WINDOW '- CLAVE INVALIDA -'
STORE SPACE(8) TO PID
STORE SPACE(8) TO PPASSW
X = X+1
ENDIF
ENDDO
RELEASE WINDOW PASEG1
CLOSE ALL
RETURN



Alex Vargas

vaca_loca
28 de Octubre del 2003
Hola Emanuel
(FoxPro 2.6 MS-DOS)
Puedes probar con un myprg.prg que contenga solo lo siguiente:

CLEAR
WAIT "Hola! .... presiona una tecla para continuar.."

una vez que guardaste el .prg, en la linea de comandos(o en otro
prg) pones :

BUILD PROJECT myprg FROM myprg && (myprg.PRG ó myprg.FXP)

BUILD EXE myprg FROM myprg && (o sea myprg.PJX, generado por
; el comando anterior)*

*en este último paso tienes la opcion de hacer de hacer el exe
compacto,que es como esta en el punto 2, te genera un exe pe-
queño, +-10KB en este caso, pero necesitas los archivos FOXPRO.ESL
y FOXPRO.ESO en el PATH para ejecutarlo.

STANDALONE ,autocontenido que se ejecuta solo,(+-863 KB en este
caso).

EXTENDED (para 32 Bit), que tambien se ejecuta solo,(+-863 KB en este
caso).

atentamente, vaca_loca