Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: theluigy13etv en 2 Marzo 2012, 19:41 pm



Título: ¿Insertar imágenes en tiempo de ejecución (Picture)?
Publicado por: theluigy13etv en 2 Marzo 2012, 19:41 pm
Mi programa para hacer el test de preguntas ya está armado. Ahora necesitaría la idea de todos para terminar mi programa. La preguntas del test algunas incluyen imágenes y otras no. Las que incluyen imágenes son aquellas preguntas que piden por ejemplo reconocer qué nombre tiene. Para eso hay tres alternativas y se contesta con las teclas 1, 2, 3. Cuando se pasa a la siguiente pregunta (en otra pantalla completa) la imagen desaparece porque la pregunta ya fue contestada. Y se pasa a la siguiente pregunta con su correspondiente imagen. (Si es que la pregunta que sigue es una pregunta que no necesita imagen, entonces, la imagen no se muestra)

Lo que hice fue crear un arreglo de Bytes que almacene 1 cuando la pregunta es con imagen y 0 cuando la pregunta es sin imagen. Para las imágenes estoy usando el control Picture. A parte cree otro arreglo de String en donde almaceno la dirección de la imagen en la computadora.


(Mi problema viene a partir de este punto)
Luego en el código, cada vez que paso a la siguiente pregunta, verifique si la pregunta tiene imagen (1) o no lo tiene (0)

Si es que lo tiene, hago algo parecido como:

Picture1.Picture = LoadPicture("Dirección de la imagen")

Pero más adelante pienso copiar este programa a un CD y pasárselo a mis amigos, pero en ese caso, la dirección de las imágenes cambiaría y no se podría cargarlas. Lo que pensé fue guardar todas las imágenes en una carpeta que vaya junto con el programa en el CD, y jalar las imágenes de esa carpeta. Pero dependiendo de la computadora, algunas tienen la unidad del CDROM en "D : \" otros en "E : \" y allí habría un problema. ¿Alguien tiene alguna otra idea?


Título: Re: ¿Insertar imágenes en tiempo de ejecución (Picture)?
Publicado por: raul338 en 2 Marzo 2012, 19:46 pm
Pon las imagenes en una carpeta junto al exe (ej, Imagenes)

Y lo llamas usando App.Path

Picture1.Picture = LoadPicture(App.Path & "\Imagenes\" & stImagen) ' stImagen es el nombre del archivo jpg/etc


Título: Re: ¿Insertar imágenes en tiempo de ejecución (Picture)?
Publicado por: theluigy13etv en 2 Marzo 2012, 20:00 pm
Muchas gracias raul338, encontré también esta información en internet muy valiosa por cierto. Gracias, ahora sí termino mi programa. Cito lo siguiente para que les sea de utilidad:

Citar
Esta propiedad nos devuelve una cadena con la ruta donde se encuentra el ejecutable de nuestro programa. Esta propiedad es de suma importancia, ya que nosotros siempre debemos "programar las rutas" de nuestra aplicación de forma relativa, es decir en donde realmente se encuentre nuestra aplicación, ya que el usuario puede instalar nuestro programa en un directorio cualquiera y de este modo si nosotros hemos puesto, por ejemplo de un archivo externo en una ruta absoluta (por ejemplo "c:\Archivos de programa", puede darse el caso de que la aplicación no encuentre dicho archivo ya que se ha instalado en otro directorio, ejecutarse en otra plataforma, etc..

Para resolver estos problemas sobre las referencias a las rutas de archivos, podemos utilizar el objeto App.path, y lo que hace esta propiedad es devolvernos el path de nuestra aplicación.

La información completa: http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico8.htm (http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico8.htm)