PREGUNTAS CONTESTADAS - FoxPro/Visual FoxPro

 Hay un total de 1456 Preguntas.<<  >> 

    Pregunta:  25356 - ERROR: RESOURCE FILE VERSION MISMATCH
Autor:  Carlos Mario Taborda
Hola, Amigos de la web del programador

Mi problema es el siguiente:

He realizado un programa en Visual FoxPro 6.0, lo he generado ejecutable (.exe), y le he creado discos de distribuciòn.

Cuando lo instale en la computadora (correctamente), pero cuando fui a correr el ejecuble (.exe), me saca el siguiente error:

Resource file version mismatch

y luego de dar clic en aceptar:

Visual FoxPro Cannot start. Could not load resources.

Nota: Esto pasa con todos los ejecutables de FoxPro.

Pero si lo genero y lo corro dentro de Visual FoxPro, me funciona correctamente.
Pense que instalando FoxPro en dicha computadora me solucionaria el problema y nada.
Lo volvi a generar y nada.

Que pasarìa, que harìa mal?

Gracias de antemano y de todo corazòn, por la ayuda que me puedan brindar.
  Respuesta:  Fabian Araya M
Perfecto en XP si funciono !!!!
Carpeta windows/system32

Gracias al señor Eduardo Jose Diaz Manzo

Sr. Carlos :
Tu problema es que tienes dos archivos de diferentes idiomas en el directorio que quieres distribuir estos son:
vfp6renu.dll y vfp6resn.dll, cada uno es el driver de fox requerido para ejecutar los ejecutables en maquinas u ordenadores que no tienen instalado visual foxpro.Generalmente el paquete de instalacion lo coloca en c:\windows.000. De cualquier manera, si deseas correr tus ejecutables en español, borra del computador el archivo vfp6renu.dll; si deseas correrlo en ingles elimina entonces vfp6resn.dll.Si no lo encuentras en la carpeta que te indiqué, buscalo con el buscador de archivos y carpetas de windows y elimina el que no necesitas.
Espero que soluciones tu problema.
  Respuesta:  Donald Martin Cajina Hernandez
El problema se debe a que compilastes el ejecutable anterior en una versión anterior. Vuelve a compilar el ejecutable en otra versión mas avanzada o igual y resolveras el problema.
  Respuesta:  Raul Angeles
En el direcctorio principal donde se encuentra tu ejecutable copia los archivos
FOXUSER.DBF
FOXUSER.FPT

y pruebalo. suerte..
  Respuesta:  Eduardo Jose Diaz Manzo
Sr. Carlos :
Tu problema es que tienes dos archivos de diferentes idiomas en el directorio que quieres distribuir estos son:
vfp6renu.dll y vfp6resn.dll, cada uno es el driver de fox requerido para ejecutar los ejecutables en maquinas u ordenadores que no tienen instalado visual foxpro.Generalmente el paquete de instalacion lo coloca en c:\windows.000. De cualquier manera, si deseas correr tus ejecutables en español, borra del computador el archivo vfp6renu.dll; si deseas correrlo en ingles elimina entonces vfp6resn.dll.Si no lo encuentras en la carpeta que te indiqué, buscalo con el buscador de archivos y carpetas de windows y elimina el que no necesitas.
Espero que soluciones tu problema.

    Pregunta:  25402 - FOXPRO 2.6 FOR WINDOWS NO FUNCIONA EN XP
Autor:  Julio César Heredia
No funciona el FOX pro 2.6 para windows en Windows XP - error de division por cero como lo soluciono ?
  Respuesta:  xavi
Aqui te lo adjunto...
descargar parche
  Respuesta:  Henry Martinez Flroes
Ese error tambien sale porque existe un error de Foxpro 2.6 para Windows en maquinas que tengan un procesador con una velocidad mayor a 333 Mhz. para solucionar este problema tienes que utilizar al patch para foxprow 2.6
  Respuesta:  Becquer Azuero
Si el error ocurre apenas ingresas al fox.

En windows 95 el foxpro 2.6 da ese error tambien, y aunque no lo creas tiene que ver con el idioma.

Cambia el idioma estandar a español y funcionará.

Espero poder ayudar ... Bye.

    Pregunta:  25578 - EJECUTAR PROGRAMA VFP UN NUMERO LIMITADO DE VECES
Autor:  Mauricio Villalba Granados
Hola a todos

Necesito saber como hago para crear una aplicación en VFP que solo se ejecute un número determinado de veces. Esto con el fin de poder dejar una muestra de mi programa a mis clientes potenciales y que lo puedan usar unas 20 veces, asi si les sirve lo compren.

Ya lo hice utilizando una tabla y funciona, pero el problema es que si abren la tabla desde VFP pueden cambiar el contador y tampoco se como proteger la tabla, se que se puede hacer cambiando el encabezado o algo asi pero no tengo ni idea de como hacerlo.

Les agradezco su ayuda y estoy seguro que la solución le será de gran utilidad a muchos de nosotros.
  Respuesta:  Jorge Enrique Arango Sotelo
Hola:

Pienso que una alternativa es utilizar arhivos de memoria, extensión ".mem"

Tu puedes tener una variable cualquiera llamada por decir contador, la inicias en 1 "contador=1", esta variable se graba al disco con la instrucción: save to cuenta all like contador.

Cuando la vayas a recuperar debes hacerlo con el comando:

restore from cuenta additive

Al traerlo, el recupera el valor guardado en contador, la cláusula additive lo que hace es agregar este valor a las otras variables que hay en memoria, de no incluirlo, se borrarn las demás variables.

Por favor envíame la respuesta si esto te sirvió, sino, te hago llegar copia de un archivo que lo haga.

    Pregunta:  25582 - COMO OCULTO LA PANTALLA DE LA APLICACIóN DEL VISUAL FOX
Autor:  Patricio Torres
Cada vez que pongo

_vfp.visible = .f.

(como dice el manual de fox)

la pantalla del fox aparece por un instante y desaparece tal como lo indica el comando.

Como evito ese destello ... Gracias.
  Respuesta:  erick Nuñez
si tu lo que quieres es quitar la aplicacion de fox y dejar solo tu formulario (tu programa) solo has lo siguiente

en el formulario en el evento Load coloca esto

application.visible=.f.

lo que hace es poner la aplicacion de foxpro invisible para que no se a vista por el usuario

bueno espero te sirva
  Respuesta:  Marvin callejas
SI LA PANTALLA PRINCIPAL DE TU APLICACION ESTA ALOJADA EN EL _SCREEN DE VFP, ESTO ES INEVITABLE.
LO QUE PUEDES HACER ES UTILIZAR LA TECNICA DE FORMULARIOS MDI, ESTO SE LOGRA CAMBIANDO UNA PROPIEDAD DEL FORMULARIO PRINCIPAL :
ShowWindow=2 (Como formulario de nivel superior)

LUEGO LOS FORMULARIOS QUE EJECUTAS DEBERIAN ALOJARSE DENTRO DE ESTA FORMULARIO PRINCIPAL, SETEANDO LA PROPIEDAD EN CADA UNO DE ELLOS:
ShowWindow=1 (En formulario de Nivel Superior)

CREA UN ARCHIVO LLAMADO Config.fpw y agrega la siguiente línea :
SCREEN=OFF

colocalo en el mismo directorio donde ejecutas tu *.exe y verás que no mostrará la pantalla de VFP y te funcionará.

CUALQUIER CONSULTA ADICIONAL PUEDES SOLICITARLA.

SALUDOS DESDE EL SALVADOR.
  Respuesta:  Tomás Alberto Amarilla
imagino que luego tu codigo llama a algun formulario, pues si es asi, el problema surge en tu formulario, que debe estar como "Formulario de Nivel Superior".

    Pregunta:  25614 - ESTIRAR FONDO EN EL SCREEN DEL FOX
Autor:  MARCO QUINTANILLA
COMO PUEDO ESTIRAR UNA IMAGEN EN EL SCREEN DEL VFOX
YA QUE LA MISMA IMAGEN SE REPITE VARIAS VECES

_SCREEN.PICTURE="FONDO.BMP"

MIL GRACIAS DE ANTEMANO
  Respuesta:  Jeg
Amplio mi anterior respuesta

With _Screen
.AddObject("Imagen","Image")
.Imagen.Picture = "fondo.bmp"
.Imagen.Width = .Width
.Imagen.Height = .Height
.Imagen.Stretch = 2 &&estira la imagen al tamaño de la pantalla
.Imagen.Visible = .T.
EndWith

  Respuesta:  Jeg
Usa el siguiente código

With _Screen
.AddObject("Imagen","Image")
.Imagen.Picture = "fondo.bmp"
.Imagen.Visible = .T.
EndWith

Igualmente puedes manipular cualquier propiedad del objeto image ojea las ayudas para ver dichas propiedades

    Pregunta:  25630 - BUSQUEDA CON SIST. DE BUFFER ACTIVADO
Autor:  damian eloy
Hola y Gracias desde ya:

Estoy desarrollando un pequeño sistema y tengo una clase basada en formulario donde tengo un método de busqueda general y uso el sistema de almacenamiento en buffer (buffermodeoverride en 3 o 5, optimista). Mi problema es cuando busco un registro con un valor por medio de seek. Lo que ocurre es que cuando ingreso el valor siempre encuentra ya que me posiciona el puntero en el valor que introduge porque al momento de buscar ya está en el buffer. La unica solución que encontré es pasar como parámetro el nro. de registro al método y filtro los registros de la tabla con SET FILTER. O sea que busco en todos menos en el actual. Me podrían tirar alguna pista para una solución mas eficiaente, ya que funciona rápido con pocod registros. Espero me contesten ya que consulte a un foro de Visual foxpro muy conocido y todavía los estoy esperando. Gracias
  Respuesta:  Fernando
Segun parece utilizas un registro de la tabla para recoger los datos para luego hacer la busqueda en la misma, yo te diria que uses variables o directamente uses un cursor temporario para cargar los datos a buscar. y luego hagas el seek.

cualquier cosa me avisas.

    Pregunta:  25675 - COMO OBTENER DATOS DE UNA BASE DE DATOS CREADA EN SQL SERVER
Autor:  Yanira Salas M
lo que pasa es ya existe una base de datos de una aplicacion creada en Visual Basic en Sql Server, ahora bien, yo necesito algunos campos de sus tablas de esta base de datos, para mostrarlos y guardarlos en otra aplicacion en Visual Fox Pro, aclaro en la otra base no voy hacer cambios, todo esto trabajando en red.
  Respuesta:  Marvin Antonio Callejas Meléndez
HOLA:
Para leer información de otra base de datos debe hacer los siguiente:

1. Configura un DSN (Data Source Name) desde el Panel de Control a la base de datos que deseas conectarte vía ODBC.
2. Una vez realizada la conexión, hay que definir una conexión desde tu proyecto que utilice el DSN.
3. Listo; ahora puedes definir vistas remotas parametrizadas que extraigan la información de la base de datos y poder almacenarla en tú contenedor de tablas ("DBC") de VFP.

Si deseas información adicional, puedes solicitarmela.

Saludos.

    Pregunta:  25742 - CóMO SABER EL NúMERO INTERNO DEL MICRO
Autor:  Daniel Alberto Pochettino
Necesito conocer el número interno del microprocesador para que un programa funcione solamente en una PC determinada.
  Respuesta:  José G Samper
Esto te devuelve el # de serial del disco duro

LOCAL lnRet, lcString, lpVolName, nVolSize, lpVolNumber, lpMaxComp, lpFlags, ;
lpFSName, nFSSize, lpRoot

IF EMPTY(lpRoot)
lpRoot = "C:\"
ENDIF

lpVolName = SPACE(256)
nVolSize = 256
lpVolNumber = 0
lpMaxComp = 256
lpFlags = 0
lpFSName = SPACE(256)
nFSSize = 256

DECLARE INTEGER GetVolumeInformation IN Win32API AS GetVolInfo ;
STRING @lpRoot, ;
STRING @lpVolName, ;
INTEGER, ;
INTEGER @lpVolNumber, ;
INTEGER @lpMaxComp, ;
INTEGER @lpFlags, ;
STRING @lpFSName, ;
INTEGER nFSSize

lnRet = GetVolInfo(@lpRoot, @lpVolName, nVolSize, @lpVolNumber, ;
@lpMaxComp, @lpFlags, ;
@lpFSName, nFSSize)

IF lnRet > 0
lcString = ALLT(STR(lpVolNumber))
ENDIF

=MESSAGEBOX("El Serial de la Unidad de Disco " + lpRoot + " es " + lcString,64,"Serial de Disco ")

    Pregunta:  25786 - COMO USO FLOCK, RLOCK, UNLOCK
Autor:  JULIO CRUZ
quisiera saber como hacerle para utilizar los comandos de flock, rlock, unlock para evitar que fox me marque un error de concurrencia cuando dos personas o mas modifican o agregan un registro en una tabla al mismo tiempo (concurrencia) gracias de antemano
  Respuesta:  Julio Cesar Arango Cubillos
Para bloquear un registro, lo aconsejable es hacerlo inmediatamente antes de grabar; luego, inmediatamente despues de grabar se desbloquea. Aqui un pequeño ejemplo:

locate for NIT=890679001
If RLOCK()
replace NOMBRE with 'JUAN OROZCO', DIRECCION with 'SAN JUAN'
unlock
EndIf
  Respuesta:  Marvin Antonio Callejas Meléndez
La estrategia para evitar la concurrencia en tú sistema depende del diseño de bases de datos, el tiempo en que debes tener "protegida" contra lectura y/o escritura y a factores intrínsicos de su aplicación. Sin embargo las siguientes consideraciones pueden ayudarte.

a) Si necesitas generar un correlativo único cuando una gran cantidad de usuarios leen una misma tabla, utiliza el comando flock() esto garantiza que dos usuarios no tenga derechos de escritura y lectura (lo fundamental en este caso) simultáneamente, ej:
Si existe una tabla de correlativos, puedes utilizar el siguiente código:

if Flock("Tabla_correlativos")
micorr=Tabla_correlativos.numero+1 && Obtener correlativo
Replace Tabla_correlativos.numero with micorr && Actualizar
Unlock in "Tabla_correlativos"
else
***Mensaje de advertencia
***Rollback (Si es necesario)
endif

Visual Fox intenta bloquear la tabla hasta el número de segundos especificados por la instrucción SET REPROCESS TO <número de segundos>.
Es importante aclarar que este código debe estar en un método que se ejecuté lo más rápidamente (en guardar por ej.) para evitar que la tabla este mucho tiempo en lock. La anterior técnica garantiza la concurrencia y durabilidad de los datos.

b) Si únicamente lo que necesitas es bloquear una fila de una tabla para modificar pero que cualquier usuario pueda leerla, puedes utilizar RLOCK() que únicamente bloquea la fila especificada para escritura.

Si deseas información adicional puedes solicitarmela y describirme el objetivo de tu aplicación para así poderte ayudarte un poquito más.

Saludos desde El Salvador.

    Pregunta:  25793 - SUMAR COLUMNAS EN GRID
Autor:  Fabián Solari
Hola a todos necesito ayuda para calcular totales de la columnas de un GRID. Los datos de este grid van cambiando a medida que navego una tabla relacionada a el. Entonces lo que necesito es ir calculando los totales y mostrandolos, ademas de cuando modifique algun valor de la columna.
Muchas Gracias.
  Respuesta:  wences
podrias usar el comando , sum o calculate :

Totaliza los valores de todos los campos numéricos especificados de la tabla actual seleccionada.

Sintaxis

SUM [eListaExpresión]
[Alcance] [FOR lExpresión1] [WHILE lExpresión2]
[TO ListaNombresVariablesMemoria | TO ARRAY NombreMatriz]
[NOOPTIMIZE]

esto es de SUM , ademas deberias crearlo como funcion y ejecutarlo a traves de un timer (un procedimiento del formulario) , de manera que se actualize cada cierto tiempo ... y ademas en los valid de los campos (columnas) que se pueden modificar ... de esta forma siempre estaria actualizado ...

Espero te sirva...

|<  <<  82 83 84 85 86 87 88 89 90 91 92  >>  >|