Código en Delphi 6, válido para Delphi for win32 y CodeGear RAD Studio (Delphi win32)
Home
Download
Documentos
Links
Historial
Correo

HotSpotMap


Componente descendiente de TGraphicControl que implementa una imagen con posibilidades de responder a la pulsación del ratón sobre distintas partes de la misma 'HotSpots' (polígonos definidos en el componente).

Las propiedades, métodos y eventos son los mismos que los de TImage y además :

Propiedades

Active: Indica si le componente está activo o no.
ClickType: Define el comportamiento del componente ante la pulsación del ratón sobre cualquiera de los polígonos (HostSpots):
ctEvent Se ejecuta el evento OnHotClick
ctLink Se ejecuta lo que indiquen las propiedades de 'Link' del HotSpot pulsado
ctLinkEvent Se ejecuta lo que indiquen las propiedades de 'Link' del HotSpot pulsado y después el evento OnHotClick
ctEventLink Se ejecuta el evento OnHotClick y después lo que indiquen las propiedades de 'Link' del HotSpot pulsado

Framed: Si true, se dibujará un frame alrededor del HotSpot sobre el que se encuentre el cursor del ratón.
FrameSize: Tamaño en pixels del frame anterior.
InkGlass: Efecto de color del HotSpot activo.
InkColor: Color del efecto.
InkGlassMode: Modo de creación de efecto de color.

imBlackness Rellena con color negro el polígono que define el HotSpot
imDstInvert Invierte el polígono que define el HotSpot
imMergeCopy Combina mediante el operador AND la imagen y el color InkColor del polígono que define el HotSpot
imMergePaint Invierte el color InkColor y lo combina con la imagen mediante el operador OR.
imNotSrcCopy Invierte el color de InkColor y lo dibuja el polígono con el color resultante.
imNotSrcErase Combina la imagen y el color mediante el operador OR y después invierte el resultado.
imSrcAnd Combina la imagen con el color InkColor utilizando el operador AND.
imSrcCopy Dibuja el HotSpot con el color InkColor.
imSrcErase Invierte la imagen del HotSpot y después la combina con InkColor a través del operador AND.
imSrcInvert Combina la imagen y el color mediante el operador XOR.
imSrcPaint Combina la imagen y el color mediante el operador OR.
imWhiteness Rellena con color blanco el polígono que define el HotSpot

Picture: Imagen del componente.
Polygon : Nº de HotSpot sobre el que se encuentra el ratón(sólo los activos). -1 si no se encuentra sobre ninguno.
Poligons: Colección de polígonos que definirán las zonas sensibles (HotSpot) a la pulsación con el ratón. Los coordenadas de los puntos que se definen en estos polígonos se refieren al ancho y largo del componente, no de la imagen que puede contener, así que si se modifica el mismo dependiendo de la imagen (propiedad Stretch), los polígonos definidos pueden no ajustarse a la imagen.
EventOutPolygon: Boolean. Si True entonces hace que salte el evento OnPolygonActive no sólo cuando el cursor del ratón se sitúa sobre un HotSpot (polígono) sino que también lo hace cuando se sitúa en zona no sensible. Si False, solo se produce cuando el cursor del ratón se sitúa sobre un HotSpot del control.
Items: (pública no publicada)
Name: Nombre identificador del HotSpot/Polígono.
Poly: Cada polígono.
Active: Boolean. Indica si el HotSpot está activo.
Cursor: Forma del cursor. Por defecto crHandPoint.
Hint: Cadena de caracteres que se mostrarán en la ventana del Hint.
HintColor: Color de fondo de la ventana hint del polígono.
Link: Propiedades del 'link' asociado al polígono (Hotspot).(Ver LinkDoc)
FileName : Documento a abrir. El documento debe tener asociada una aplicación (p.e. ".doc" es un documento de Microsoft Word)
DefaultDir : Directorio por defecto.
Operation : Operación que queremos realizar.
loOpen Abre el documento
loExplore Explora la carpeta donde se encuentra el documento
loPrint Imprime el documento


Parameters : Parámetros a pasar.
ShowCmd : Forma de apertura del documento. Los tipos son los siguientes :

scHide Cierra la ventana y activa otra
scMaximize Maximiza la ventana
scMinimize Minimiza la ventana
scRestore Activa y muestra la ventana
scShow Activa la ventana
scShowDefault  
scShowMaximized Activa y muestra la ventana maximizada
scShowMinimized Activa la ventana y la minimiza
scShowMinNoActive Muestra la ventana minimizada pero no activa
scShowNa Muestra la ventana en el estado en que se encuentre pero no la activa
scShowNoActivate  
scShowNormal Activa y muestra la ventana


PopupMenu: Menú de contexto para el polígono(HotSpot).
Items: (pública no publicada)

Point: Cada uno de los vértices del polígono
X: Coordenada X
Y: Coordenada Y

Métodos

ExportHTMLMap: Crea un fichero con la estructura <MAP>...</MAP> de HTML para los polígonos (hotspots) definidos en el componente.
CopyHTMLMaptoClipboard: Guarda en el portapapeles una copia de la estructura <MAP>...</MAP> de HTML para los polígonos (hotspots) definidos en el componente.
GetNumber:Se le pasa como parámetro el nombre (Name) del HotSpot y devuelve el número (Index) del HotSpot.
GetName:Se le pasa como parámetro el número (Index) del HotSpot y devuelve el Nombre (Name) del HotSpot.
ByName : Se le pasa como parámetro el nombre (Name) de un HotSpot (Polygons[n].Name) y devuelve el objeto Poly (Tpoly) del polígono cuyo nombre es Name.
Draw : Dibuja el polígono (HotSpot) del número/nombre que se le pase como parámetro con la brocha (Brush) y lápiz (Pen) actual del Canvas del control.
Ejemplos :
  HotSpotMap1.GetNumber('PolyCuadrado');
  HotSpotMap1.GetName(1);
  If HotSpotMap1.ByName('PolyCuadrado').Active then
     HotSpotMap1.Draw('PolyCuadrado')
  Else
     HotSpotMap1.Draw(0);

Eventos

OnHotClick: Se produce cada vez que el usuario pulsa con el ratón sobre alguno de los HotSpot (polígonos) definidos en el control. Tiene como parámetros Sender que es el propio control y Polygon que es un entero que indica el nº del polígono sobre el que se ha pulsado. La numeración va de 0 al nº de polígonos-1.
OnPolygonActive: Se produce cada vez que el cursor del ratón entra en un HotSpot (polígono) de los definidos en el control. Tiene como parámetros Sender que es el propio control y Polygon que es un entero que indica el nº del polígono sobre el que se ha situado el cursor del ratón. La numeración va de -1 al nº de polígonos-1. Si la propiedad EventOutPolygon es True, también saltará cuando el cursor se sitúe en una zona no sensible del control (entonces el parámetro Polygon será '-1').

Puedes descargar un ejemplo pulsando sobre la imagen siguiente :

Editor de polígonos incorporado (haciendo doble-click o Edit) sobre el componente. Descarga el manual de este editor incorporado.

Pulsando el botón derecho del ratón sobre el componente, éste nos permitirá cargar los datos de los puntos de los polígonos desde un fichero de texto creado por la utilidad HotSpotMapEditor (obsoleto ya que el propio componente permite editar). También os podéis descargar el manual de este programa.