SoloCodigo
Programación General => Visual FoxPro => Mensaje iniciado por: miguelc en Viernes 17 de Agosto de 2007, 12:08
-
:hola: Hola a todo
Al generar una aplicación en el entorno de trabajo del visual foxpro 9 en windows xp funciona correctamente pero cuando ejecuto la aplicación fuera del entorno al cárgala formulario se cierra inmediatamente la aplicación, es un ingreso de una clave y un password que se verifica en una base de datos, por su ayuda muchas gracias
-
hola, mira bajate el proyecto que esta el mas pequeño que que es el visor de datos y fijate en el prg inicial ese prg llama a un form
que tiene dos propiedades una es showwindos = 2 y la otra no recuerdo bien. Para que no te suceda eso.
Espero te sirva.
Saludos,
-
:hola: Hola a todo
Al generar una aplicación en el entorno de trabajo del visual foxpro 9 en windows xp funciona correctamente pero cuando ejecuto la aplicación fuera del entorno al cárgala formulario se cierra inmediatamente la aplicación, es un ingreso de una clave y un password que se verifica en una base de datos, por su ayuda muchas gracias
Aki te envio mi programa principal.prg, revisalo:
SET TALK OFF &&No los resultados de los comandos
SET CENTURY ON&&activa el año de 4 digitos
SET SAFETY OFF&&Especifica que no se muestre ningún cuadro de diálogo antes de sobrescribir un archivo existente
SET DATE BRITISH
SET CLOCK ON&&muestra el reloj en la esquina superior derecha de la ventana de vfp
*SET HOURS TO 24&&establece el formato de hora del relojo 12 ó 24
SET NOTIFY OFF
SET OPTIMIZE ON
CLOSE DATABASES
RELEASE ALL &&liber las variables y matrices de memoria
application.Visible=.f.
CLEAR
*** cargar módulo de entrada al sistema
PUBLIC cRuta1
cRuta1=SYS(5)+CURDIR()
SET DEFAULT TO (cRuta1)
SET PATH TO C:\exe,clases,class.bmp,graficos,icons,menu,prg &&Especificamos los directorios a buscar
IF DRIVETYPE(SYS(5))<>3&&verificamos si se esta ejecutando dentro de un disco duro local
MESSAGEBOX("No se puede iniciar el programa en unidades" + CHR(13)+;
"diferentes a discos duros locales",;
16,"Sistema Almacen")
RETURN
ENDIF
*** configurar entorno de trabajo
_screen.caption = "Sistema Mantenimiento Almacen"
*_screen.icon = "icon.ico"
_screen.Picture ="fondotrama.jpg"
_screen.windowstate = 2 && maximizar
_screen.AutoCenter = .T. &¢rado
SET MESSAGE TO "Sistema Mantenimiento Almacen"
SET SYSMENU OFF&&Deshabilita el menu
*//////////////
DO iniciopresen&&llama a la pantalla de inicio o presentacion
*/////////////
DO variables
*Ejecutando el form login
DO FORM login && registro de usuario
READ events
SET SYSMENU TO DEFAULT &&activa la configuración predeterminada de vfp
*//////////////////////////////////////////////////////////////////////////////////
PROCEDURE iniciopresen
PUBLIC oPresenta
oPresenta=CREATEOBJECT("Presenta","Sistema Almacen","Sistema Control Almacén")
oPresenta.show
*--- Para prueba espero 5"
INKEY(3)
opresenta.release
ENDPROC
****-------------------------
*Definimos la clase mediante programación
DEFINE CLASS Presenta as Form
ShowWindow=2
docreate = .t.
height = 124&&241&&definimos el alto
width = 496&&define el ancho
MaxButton=.F.
MinButton=.F.
borderstyle = 2
TitleBar = 0
windowtype = 0
desktop=.t.
autocenter = .T.
Picture = "presen.JPG"
name = "Presenta"
***---
PROCEDURE INIT
Lparameters tcTitulo,tcPresenta
SYS(2002)&&desactivamos el punto de inserción
this.crearobjetos(tcTitulo,tcPresenta)
If Not Empty(tcTitulo)
This.Caption=tcTitulo
EndIf
If Not Empty(tcPresenta)
This.lblPresenta.Caption=tcPresenta
ENDIF
This.Refresh
ENDPROC
*-------------------
PROCEDURE DESTROY
SYS(2002,1)
ENDPROC
*--------------
PROCEDURE crearobjetos
LPARAMETERS tcTitulo,tcPresenta &&recibe valores de esta funcion
this.AddObject("lblPresenta","Label")
WITH this.lblPresenta
.AutoSize=.T.
.Alignment=2
.Fontbold=.T.
.Fontsize=9
.Backstyle=0
.Caption= tcTitulo
.Height=40
.Left=290
.Top=-10
.Width=250
.Tabindex=1
.Forecolor=Rgb(255,0,0)
.Name="lblPresenta"
.Visible= .T.
ENDWITH
this.AddObject("lblEspera","Label")
WITH this.lblEspera
.AutoSize=.T.
.Alignment=2
.Fontbold=.T.
.FontName="Arial"
.Fontsize=12
.Backstyle=0
.Caption=""
.Height=20
.Left=150
.Top=110
.Width=200
.Tabindex=2
.Forecolor=Rgb(255,0,0)
.Name="lblEspera"
.Visible= .T.
ENDWITH
this.AddObject("lblDerechos","Label")
WITH this.lblDerechos
.AutoSize=.T.
.Fontbold=.T.
.FontName="Arial"
.Alignment=2
.Fontsize=8
.Backstyle=0
.Caption="Derechos Reservados Edwin J.C. 2007-2008"
.Height=20
.Left=25
.Top=108
.Width=200
.Tabindex=3
.Forecolor=Rgb(255,0,0)
.Name="lblDerechos"
.Visible= .T.
ENDWITH
ENDPROC
ENDDEFINE
*************************
Lo ke hace este prg es crea el entorno de la aplicación, llama a un formulario de presentación creado con la clase form, se visualiza por 3 segundos, luego llama al form login para ingresar a tu sistema.
Con este prg no tendras problemas al cambiar de carpeta tu aplicación.
Cualkier duda: edwin24x@hotmail.com
-
gente hay una forma mas simple sin realizar tanto codigo realizan un formulario nuevo con las sgtes propiedades
autocenter=.t.
borderstyle=1-fixed-single
caption=none
controlbox=.f.
maxbutton=.f.
minbutton=.f.
movable=.f.
y despues le añaden al formulario un control timer le ponen em la propierdad intervalo 3000 por ejemplo y en el procedimiento timer le ponen thisform.release asi de simple y desp le añaden todos los detalles que quieran a la pantalla como que diga sistema tal... cargando espere... etc
y nada mas ahora si desean llamar a la primera pantalla se realiza un programita que llame a este formulario ejemplo inicio.scx y listo