PDA

Ver la Versión Completa : Mapa en Delphi


jpgonzalez
16-08-2013, 19:38:03
Buenas para todos, queria consultarles acerca de una inquietud que tengo hace tiempo...

Hace ya varios meses que convivo con la duda de como hacer para realizar un mapa, por ejemplo el de la imagen que adjunto.(ojo, no es que quiera hacer un TEG).
La duda es como hago para capturar el click en cada pais, si cada uno tiene una forma poco convensional (o sea no es un cuadrado o un circulo que puedo dibujar con un TShape).

Basicamente la duda es que componente usar para lograr que pueda capturar el click en cualquier lugar de cada pais, para luego poder realizar alguna tarea con ello (ya sea mostrar info en un nuevo form, cambiar el color o lo que sea).

Desde ya muchas gracias!

José Luis Garcí
16-08-2013, 20:09:08
hola JPGonzales puedes usar este componente http://www.i-griegavcl.com/hotspotmap.html son freeware y la mayoría funcionan en mi delphi 2010.

Pones la imagen, con una utilidad que encontraras en la misma página, creas las zonas y luego ya funciona como si fueran botones independientes con este componente.

Casimiro Notevi
16-08-2013, 20:11:05
Hay componentes para hacerlo, alguna vez se ha hablado de ello, ahora sólo falta encontrarlo :D

EDITO: qué rápido, ya ha aparecido el componente :)

jpgonzalez
16-08-2013, 20:13:16
Gracias a ambos...
No es con mucha urgencia... puse un mapa como ejemplo, pero puede ser con cualquier imagen de forma no convencinal.
Jose Luis, en un rato me pongo a ver eso...
Casimiro... si llegas a encontrar algo, aqui estaré esperando, jajaja.
ABRAZO!!!!!!!!

jpgonzalez
16-08-2013, 20:37:18
Bien, heche un vistazo rapidamente a la aplicacion... parece muy facil de usar.
La pregunta que me surge son las siguiente...

Me guarda un archivo PLG... es correcto?
Como mostraria este archivo en el Delphi?... con TImage?
Una vez que levante ese archivo en el Delphi... reconoce el click en cada zona?

Gracias!

Edito: baje el hostmapeditor, no baje el hostspotmap... ahora lo busco para DXE, porque en esa pagina no encuentro en link de descarga del componente.
El hostmapeditor es el que guarda la imagen plg, y supongo que con el componente hostspotmap se abrira... abrazo!!!

jpgonzalez
16-08-2013, 23:46:51
Intente instalar el componente en DXE...
primero me tiro un error con el package vcljpg, pero buscando por internet encontre que en D2010 se cambio el vcljpg por el vclimg, asi que modificando eso lo pude solucionar.
Pero ahora me sale el siguiente error:

[DCC Fatal Error] RegPropertiesLink.pas(22): F1026 File not found: 'LinkImage.dcu'

Alguna sugerencia?

José Luis Garcí
17-08-2013, 00:45:53
Tengo este no se si te valdrá, ya que no es el del programa, prueba y ya contaras.

Tendrás que compilarlo previamente o indicar su ruta.

Otra opción es mandarle un correo, te aseguro que responde y probablemente te mande el archivo original.

jpgonzalez
17-08-2013, 01:31:03
Gracias Jose Luis, mañana a la tarde veremos que pasa!
Por hoy, dejo un rato la compu y me voy a jugar Futbol 5, jajajaja.
Un abrazo, si lo soluciono te mantengo al tanto.

José Luis Garcí
17-08-2013, 09:11:51
OK, de todas maneras si no te funciona, recuerda puedes mandarle un correo a webmaster@i-griegavcl.com y seguro te envía el archivo o una solución

jpgonzalez
19-08-2013, 01:51:11
Bien, les dejo el resultado de lo que hice, con el HotSpotMap funcionando en DelphiXE.

1) Bajar el package de http://www.i-griegavcl.com/down.asp , haciendo click en download package
2) Bajar HotSpotMapEditor de http://www.i-griegavcl.com/hotspotmap.html (link al final de la pagina)
3) Agregar al Library Path la ruta de donde se encuentran los archivos del componente
4) Abrir igriegavclD6.dpk
5) Compilar el proyecto

Aqui viene lo que a mi me tiro errores al compilar:
6) Si les tira un error en el package vcljpg, cambiar lo que dice vcljpg por vclimg... esto lo encontre buscando por internet, y lei que a partir de Delphi 2010 se cambio vcljpg por vclimg (este error es porque tenemos en el requires del proyecto el vcljpg, modificarlo manualmente borrandolo y escribiendo vclimg)
7) Si les dice que falta el archivo LinkImage.dcu, se los adjunto aqui, agregarlo en las carpetas:
C:\Program Files\Embarcadero\RAD Studio\8.0\lib\win32\debug
C:\Program Files\Embarcadero\RAD Studio\8.0\lib\win32\release

Luego de esto compilar nuevamente, y si no tira mas errores, instalar el componente.
Gracias a Jose Luis y a Casimiro por la ayuda... abrazo!

jpgonzalez
19-08-2013, 01:53:48
Dejo el archivo que no me subio en el comentario pasado

Casimiro Notevi
19-08-2013, 09:09:28
^\||/^\||/^\||/

José Luis Garcí
19-08-2013, 09:18:19
Me alegro de que te funcione y estoy seguro de que es lo que necesitas, el LinkImage.dcu no te valio el que te mande?

jpgonzalez
20-08-2013, 05:46:09
Buenas Jose Luis, me vino perfecto el .pas que me pasaste, lo compile y luego copie el dcu a la carpeta lib del Embarcadero.
Solo una cosa, importante con el HotSpotMapEditor...

En la pagina se advierte que es una version de prueba, pero que si se usa tal como lo indica el manual no habra fallas... y de hecho es asi!.
Al crear los poligonos, el HotSpotMapEditor les va poniendo Polygon 0, Polygon 1.... y asi sucesivamente.
El tema es que aunque nos permita cambiarles el nombre a los poligonos, no debemos hacerlo, ya que si le cambiamos el nombre luego el componente HotSpotMap de Delphi no carga ninguno.

Por ejemplo, en el mapa que puse anteriormente (el del TEG) hice 3 poligonos:
Polygon 0 --- AmNorte
Polygon 1 --- AmSur
Polygon 3 --- Africa

Cuando le deje el nombre por defecto que le crea el HotSpotMapEditor, me cargo perfectamente los 3 poligonos.
Cuando le cambie el nombre, no me cargaba ninguno de los poligonos.

Espero les sirva, abrazo!!!!!!

José Luis Garcí
20-08-2013, 09:10:45
Gracias por contar todos los pasos, que seguro le servirá a otros compañeros.