******************************
* Para un objeto individual
****************************************
* MouseDown Event
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF INLIST(nButton,1,2)
ADDPROPERTY(thisform,"owid",this.width)
ADDPROPERTY(thisform,"oHei",this.Height)
ADDPROPERTY(thisform,"Stax",nxCoord)
ADDPROPERTY(thisform,"Stay",nyCoord)
ENDIF
* MouseMove Event
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton=2
WITH this
.Top=nYCoord
.Left=nXCoord
ENDWITH
ENDIF
IF nButton=1
ny=Thisform.oHei+nyCoord-Thisform.stay
nx=Thisform.oWid+nxCoord-Thisform.Stax
this.Height=MAX(17,MIN(thisform.Height,ny))
this.Width=MAX(17,MIN(thisform.Width,nx))
ENDIF
* Debe evitarse que el control colapse por medida inferior a la permitida
* debe evitarse que el control se torne mayor que el formulario que lo contiene.
* Si el contenedor es un Container, deberá efectuarse el reemplazo pertinenete.
**************************
* Para BindEvent
**************************
* Init del Formulario
***************************
for each oControl in thisform.Controls
if ocontrol.BaseClass=="Image"
BindEvent(oControl , "MouseMove" , Thisform , "Movimage" )
BINDEVENT(oControl , "MouseDown" , Thisform , "ForMouseDown" )
endif
endfor
**********************
* Metodo ForMouseDown
**********************
LPARAMETERS nButton, nShift, nXCoord, nYCoord
LOCAL obj,nEvents,nSalto
nSalto=7
nEvents=AEVENTS(gaEvents,0)
IF nEvents=0
RETURN
ENDIF
obj=gaEvents[1]
IF INLIST(nButton,1,2)
ADDPROPERTY(thisform,"owid",obj.width)
ADDPROPERTY(thisform,"oHei",obj.Height)
ADDPROPERTY(thisform,"Stax",nxCoord)
ADDPROPERTY(thisform,"Stay",nyCoord)
ENDIF
****************************
* Metodo Movimage **********
*****************************
LPARAMETERS nButton, nShift, nXCoord, nYCoord
LOCAL obj,nEvents,ny,nx
nSalto=7
nEvents=AEVENTS(gaEvents,0)
IF nEvents=0
RETURN
ENDIF
obj=gaEvents[1]
IF nButton=2
WITH obj
.Top=nYCoord
.Left=nXCoord
ENDWITH
ENDIF
IF nButton=1
ny=Thisform.oHei+nyCoord-Thisform.stay
nx=Thisform.oWid+nxCoord-Thisform.Stax
obj.Height=MAX(17,MIN(thisform.Height,ny))
obj.Width=MAX(17,MIN(thisform.Width,nx))
ENDIF