Area Rectangular en HTML
by Ciberwalter
Fecha: 23/Ene/2004 (22 de Enero del 2004)
Autor: Walter Mart�nez O.
[email protected]
http://www.geocities.com/gnivel4
Este Ejemplo te permite crear Areas Rectangulares para usarse como un V�nculo, (los conocidos "Area Map Rect"), los cuales pueden ubicarse en cualquier regi�n de una imagen determinada.
La gran alternativa que posee, es que se puede agrandar o achicar desde los cuadros que se encuentran en los extremos. para hacernos una idea de c�mo se ver�a este V�nculo, Haz Click en los ojos del Personaje, (la imagen muestra el programa en s�).A continuaci�n sigue c�digo en Visual Basic (S�lo detallar� lo mas importante):
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Create.Enabled = True
''' Hacemos los cuadros de las esquinas invisibles
IzUp.Visible = False
DerUp.Visible = False
IzDown.Visible = False
DerDown.Visible = False
shCapture.Visible = True
shCapture.Left = X
shCapture.Top = Y
shCapture.Height = 0
shCapture.Width = 0
miStartX = X
miStartY = Y
''' Dejamos el valor Operacion como Verdadero para
''' que pueda realizarse el cuadro
Operacion = True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Operacion = True Then
''' A Medida que el cursor se mueve, crea el cuadro en el Formulario
shCapture.Left = -miStartX * (X > miStartX) - X * (X <= miStartX)
shCapture.Top = -miStartY * (Y > miStartY) - Y * (Y <= miStartY)
shCapture.Width = Abs(miStartX - X)
shCapture.Height = Abs(miStartY - Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Operacion = False
''' Al Soltar el cursor establece el cuadro y coloca
''' los modificadores en las cuatro esquinas.
IzUp.Visible = True
IzUp.Left = shCapture.Left - IzUp.Width
IzUp.Top = shCapture.Top - IzUp.Height
DerDown.Visible = True
DerDown.Left = shCapture.Left + shCapture.Width
DerDown.Top = shCapture.Top + shCapture.Height
IzDown.Visible = True
IzDown.Left = shCapture.Left - IzDown.Height
IzDown.Top = shCapture.Top + shCapture.Height
DerUp.Visible = True
DerUp.Left = shCapture.Left + shCapture.Width
DerUp.Top = shCapture.Top - DerUp.Height
''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' COORDENADAS
''' Primero lleva la escala al Valor de "Pixeles" (3) para poder
''' realizar las coordenadas
Form1.ScaleMode = 3
''' establece las coordenadas en los TextBox
Text1 = shCapture.Left
Text5 = shCapture.Top
Text2 = shCapture.Left + shCapture.Width
Text6 = shCapture.Top
Text3 = shCapture.Left
Text7 = shCapture.Top + shCapture.Height
Text4 = shCapture.Left + shCapture.Width
Text8 = shCapture.Top + shCapture.Height
''' y devuelve la escala al valor "Twip" (1) para que no haya conflicto
''' con los modificadores.
Form1.ScaleMode = 1
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' Funciones Agrandar Cuadro de Selecci�n '''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub IzUp_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
OperacionIzUp = True
End Sub
''' Para Usar los modificadores, debemos Asignar una sentencia
''' espec�fica a cada modificador, para que sus equivalentes
''' se muevan junto con �l
''' este es el modificador del lado Izquierdo-Arriba
Private Sub IzUp_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo SaltoIzUp
If OperacionIzUp = True Then
IzUp.Left = IzUp.Left + X
IzUp.Top = IzUp.Top + Y
IzDown.Left = IzDown.Left + X ' junto con el se mueve el Izquiedo-Abajo
DerUp.Top = DerUp.Top + Y ' y el Derecho-Arriba
'''''''''''''''''''''''''''''''''''''''''''''
''' Y Adem�s modifica el tama�o y la posici�n del cuadro
shCapture.Top = IzUp.Top + IzUp.Height
shCapture.Left = IzUp.Left + IzUp.Width
shCapture.Height = IzDown.Top - (IzUp.Top + IzUp.Height)
shCapture.Width = DerUp.Left - (IzUp.Left + IzUp.Width)
'''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' COORDENADAS
'' Otra vez cambia el modo a pixeles y crea las coordenadas.
Form1.ScaleMode = 3
Text1 = shCapture.Left
Text5 = shCapture.Top
Text2 = shCapture.Left + shCapture.Width
Text6 = shCapture.Top
Text3 = shCapture.Left
Text7 = shCapture.Top + shCapture.Height
Text4 = shCapture.Left + shCapture.Width
Text8 = shCapture.Top + shCapture.Height
Form1.ScaleMode = 1
End If
Exit Sub
'' este escape funciona cuando tratas de achicar tanto el cuadro,
'' que se invierte y provoca una resta incoherente, produciendo un error
'' SI NO ME CREES BORRA LA OPCION "ON ERROR GOTO SaltoIzUp" para que veas
SaltoIzUp:
OperacionIzUp = False
End Sub
Al momento de abrir el programa, podr�as incluir un bot�n para cambiar la imagen (por ejemplo).Su utilizaci�n es muy f�cil: s�lo abres una imagen espec�fica y dibujas un cuadrado en el Area que deseas, luego lo dimensionas a tu gusto, completas los casilleros "Imagen" y "HiperVinculo" seg�n tus opciones y pulsas el bot�n "Generar C�digo". Luego copias el c�digo que te entrega y lo pegas en una p�gina web (*.htm) si sabes programar en HTML te ser� muy F�CIL.
Descarga el Fichero con el C�digo de ejemplo y el Ejecutable ("Ciberwalter_AreaRect.zip" - Tama�o 77.5 KB)