Necesito ayuda con el almacenamiento de imágenes!

¿Tengo un proyecto de un registro de alumnos uno de los requisitos es que me almacena una fotografía del alumno que se registra eso de almacenar la fotografía ya lo hice y en el form se tiene que navegar por todos los registros el problema que tengo es que cuando paso los registros la imagen no cambia la imagen se muestra en un control imagen nada más se cambia si le doy clic y si le aplico un refresh no me lo acepta como puedo hacer para que la imagen cambien?
De antemano muchas gracias

1 Respuesta

Respuesta
1
Para poder ayudarte es necesaria saber algunas cosas más.
Necesito saber que VFP usás, como guardás la imagen y como vinculás el control Image a la imagen.
Pásame esos datos y vemos como seguimos.
Pues la versión es 9.0 y para guardar la imagen la guarda en una tabla lo que se guarda en la tabla es la ruta de la imagen en la tabla por medio de una variable que utilizo y la tuta que se almacena en la variable se muestra en un texbox y el contro imagen le digo que sea igual a la ruta que se muestra en el texbox...
No se si me doy a entender dejo me msn por algo
[email protected]
Ya que usás VFP 9 te recomiendo que en tu tabla uses para el campo Foto el tipo de datos Memo (Binary) y que te guardes el contenido de la imagen. Después vinculá directamente la propiedad PictureVal al campo Foto
Para guardar la foto tendrías que hacer así:
REPLACE Foto WITH FILETOSTR(<ruta completa de la imagen>)
Y cada vez que te movés de registro hacés:
ThisForm.Imagen.PictureVal = tabla.Foto
Y listo.
De esta forma, no te afecta la ruta de la imagen, ya que la imagen la tenés dentro de la tabla.
Espero te sirva. Suerte.
Tengo para guardar la imagen un botón que el código del botón lo tengo así }
nombreimagen = getpict('','Buscar Imagen','Escoger')
thisform.txtfotografia.Value = nombreimagen
y por lo que te entendi tendria q remplasar eso por esto
REPLACE Foto WITH FILETOSTR(<ruta completa de la imagen>)
nose si entendi??????????????
Claro.
En tu caso, tendrías que hacer así:
REPLACE Foto WITH FILETOSTR(nombreimagen)
Y listo. Ya guardás en tu campo la imagen en sí, no la ruta. Hasta te podrías llevar esa tabla a otro equipo y seguirías teniendo la imagen.
El nombre del campo que guarda la foto. En tu tabla deberías tener un campo tipo Memo (Binary) que guarde la foto.
Dice que no se encontró la variable foto a que te refieres que es eso
Lo puse así para mostrarte como guardar el contenido de la imagen.
Vos tenías esta línea de código:
nombreimagen = getpict('','Buscar Imagen','Escoger')
Ahí guardabas la ruta de la imagen
Después agregá esto:
REPLACE Foto WITH FILETOSTR(nombreimagen)
Donde Foto debería ser el nombre del campo que va a guardar la imagen (ponele el nombre que te guste).
¿Me explico?
Pero tu me dices que quite lo que tenia y al quitarlo dice que no encuentra la bariavle nombreimagen
Si ya esta y si hoy que es lo que tengo que poner en a propiedad pictureval del control picture para que las muestre bastara con el nombre del campo
Una vez que tengas las imágenes guardadas en el campo (suponiendo que el campo que guarda la foto se llama "foto") tendrías que hacer esto cuando pases a la ficha de otro alumno:
ThisForm.Imagen.PictureVal = tutabla.foto
Y listo.
osea q ese codigo tendria q ponerlos en los cuatro botones de navegacion?????????????
La línea que te refresca el PictureVal, si
Fíjate que me estás mandando 2 veces cada pregunta. ¿Es error tuyo o de la página?
De la página ami me cayo dos bese la misma respuesta
Y bueno...
Decime como te funcionó tu programa.
Me voy. Mañana seguimos. Suerte !
mmmm no me funciona veré que hago para que funcione
Cuando quieras seguimos.
Para repasar:
-En tu tabla (como ejemplo voy a usar como nombre "tutabla"), tenés que tener un campo tipo Memo (Binary) para guardar la imagen. Supongamos que el nombre de ese campo es "Foto".
-Tenés que tener un botón o algo para seleccionar la imagen y guardarla en la tabla. Supongamos que es un botón. En el evento Click de ese botón tendrías que tener:
nombreimagen = getpict('','Buscar Imagen','Escoger')
REPLACE Foto WITH FILETOSTR(nombreimagen)

-Tenés que tener un control "Image" para mostrar las fotos.
-En los botones de navegación entre alumnos, tendrías que refrescar la imagen:
ThisForm.Imagen.PictureVal = tutabla.foto
Y listo.
Fíjate si tenés todo así y avisame. Suerte.
Pues según esto todo funciona bien porque revise las tablas y se supone que si me lo guarda
pues no se aque te referís a refrecar si es lo que yo pienso pongo esto en los botones de navegación y nada
ThisForm.Imagen.PictureVal = tutabla.foto
Me acabo de acordar de algo.
¿Qué sistema operativo tenés?
¿Tu VFP 9 tiene instalado service packs?
Tengo windows seven y mi vfp si tiene instalado es servipack 1
Ahí está !
Me pasó lo mismo cuando lo usé la primera vez. Instalate el SP2 y funciona.
Ojo! El SP2 solo existe en inglés. Si no querés instalarlo buscamos otra alternativa (es bastante más vueltera pero funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas