Foros del Web » Programación para mayores de 30 ;) » Programación General »

Imagen sensible en vb

Estas en el tema de Imagen sensible en vb en el foro de Programación General en Foros del Web. Hola quiero darle varias sensibilidades a una imagen en visual basic.. de forma que si toco un lado de la imagen me ejecute alguna instruccion ...
  #1 (permalink)  
Antiguo 12/10/2004, 10:37
Avatar de Loco del Pc  
Fecha de Ingreso: diciembre-2002
Ubicación: Santander
Mensajes: 98
Antigüedad: 22 años
Puntos: 0
Imagen sensible en vb

Hola quiero darle varias sensibilidades a una imagen en visual basic..
de forma que si toco un lado de la imagen me ejecute alguna instruccion y si toco otro lado otra instruccion diferente...

Como puedo hacer eso?
  #2 (permalink)  
Antiguo 14/10/2004, 08:58
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años
Puntos: 7
Loco del Pc:
Eso que dices lo hago utilizando Regiones. Estoy haciendo un programa para unos niños, que cuando señalan una parte del cuerpo en una imagen, una voz les dice que parte es. Te pongo una simplificación de dicho programa en el siguiente link
http://www.ag-info.com/Regiones.zip

Espero que te pueda servir.
  #3 (permalink)  
Antiguo 14/10/2004, 10:07
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 10 meses
Puntos: 1
Hola Beakdan,

Me tomado la libertad de revisar tu programa, por lo cual te pido disculpas.

Me ha llamado la atención el uso del compilador de recursos, ¿Podrías explicarme que utilida te brinda este compilador? ¿Porque has tenido que usarlo en tu programa?

Muchas gracias por tu aportación.

Saludes.
__________________
Leer es Saber, REEL.
Mi Blog
  #4 (permalink)  
Antiguo 14/10/2004, 10:55
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años
Puntos: 7
Reel:
Que bueno que hayas visto el programa, para eso está publicado (debería yo ofrecer disculpas por publicar código tan simple).

Bueno, con el compilador de recursos se pueden lograr algunas cosas interesantes. Por ejemplo: el simple hecho de incluir un ícono que aparezca antes que cualquier cosa en la lista de recursos (para esto en lugar de un número le pones una cadena de identificación), hace que windows lo tome como el ícono de aplicación.
Ahora, tener un archivo de recursos es cómodo. Si tu aplicación tiene muchas imágenes, puedes empaquetarlas todas en el recurso. Al compilar tu programa, estas imágenes quedan compiladas junto con el ejecutable. Así, no tienes que preocuparte por incluirlas en el archivo de distribución. También en caso de que hagas una aplicación que será usada en lugares con distintos idiomas, puedes definir un identificador único para un mensaje dado, y asignar el mensaje en distintos idiomas a ese identificador. Así, en tu código sólo llamas al identificador, y el programa tomará el idioma que coincida con el sistema del usuario.
En el caso de este programa, me resulta conveniente definir en el archivo de recurso una secuencia binaria que representa una serie de numeros de tipo long, que son a su vez coordenadas del gráfico del programa. Una función en el programa requiere un array de puntos (POINTAPI). El tipo de datos POINTAPI es una estructura que simplemente tiene dos longs en secuencia. En un array de puntos tienes por lo tanto una secuencia de longs. Y visto en la memoria, esto se puede traducir a una secuencia de bytes. Entonces, definiendo en el recurso esta secuencia de bytes, cuando la requiero en el programa, simplemente la cargo y le paso a la función la dirección del primer elemento de este array. La función busca en la memoria esta secuencia y con ella trabaja (al fin y al cabo, en memoria todo es secuencias de bytes). Así me evito declarar el tipo de dato POINTAPI en el programa, pero además me evito tener que llenar una por una la secuencia...
Código:
'Hubiera tenido que hacer esto:
Dim ArrPuntos() as POINTAPI
 
	'Luego hubiera sido necesario redimensionar dicho array
	'Segun la cantidad de puntos.
	Redim ArrPuntos(0 to n)
 
	'Y después llenar cada una de las coordenadas
	ArrPuntos(0).x = x0
	ArrPuntos(0).y = y0
	ArrPuntos(1).x = x1
	ArrPuntos(1).y = y1
	........
	ArrPuntos(n).x = xn
	ArrPuntos(n).y = yn
 
	'Y a repetir el proceso para la cantidad de areas sensibles definidas.
En cambio del modo en que lo hice, todo se reduce a cargar la secuencia con LoadResData en un bucle que itera sobre la cantidad de áreas. De este modo, con sólo 4 lineas de código reemplazo todo lo anterior.

Espero que esta explicación no haya sido tediosa. Pero si puedo ayudarte en algo, no hay problema.

Hasta luego.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:08.