Artículo original: Drag, Drop and Restrict
http://sandstorm36.blogspot.com/2020/06/drag-drop-and-restrict.html
Autor: Jun Tangunan
Traducido por: Luis María Guayán
Acabo de leer un problema dentro de Foxite.com en el que cuando un usuario mueve accidentalmente el mouse más allá de los límites del formulario, la función de arrastrar y soltar falla porque los objetos desaparecen en las áreas más allá del formulario.
La solución a eso es restringir los movimientos de arrastrar y soltar dentro de su formulario, o la dimensión dentro de los objetos en su formulario. Aquí hay dos ejemplos que muestran cómo lograrlo:
Ejemplo 1:
* Restricting drag and drop within the form
Local oForm As Form
oForm = Createobject('TestForm')
oForm.Show(1)
Return
Define Class TestForm As Form
AutoCenter = .T.
Width = 900
Height = 440
Caption = 'Drag, Drop & Restrict Inside Form'
Add Object container1 As Mycontainer With Top = 30, Left = 50
Enddefine
Define Class Mycontainer As Container
Height = 100
Width = 100
Procedure MouseMove
Lparameters nButton, nShift, nXCoord, nYCoord
If m.nButton = 1 And Between(m.nYCoord,0,Thisform.Height-This.Height) And ;
BETWEEN(m.nXCoord,0,Thisform.Width-This.Width)
This.Move(m.nXCoord, m.nYCoord)
Endif
Endproc
Enddefine
Ejemplo 2:
* Restricing within objects on form, in this case above or below the lines
Local oForm As Form
oForm = Createobject('TestForm')
oForm.Show(1)
Return
Define Class TestForm As Form
AutoCenter = .T.
Width = 900
Height = 440
Caption = 'Drag, Drop & Restrict'
Add Object Shape1 As shape With Top = 30, Left = 0, Width = 900, height = 1
Add Object Shape2 As shape With Top = 200, Left = 0, Width = 900, height = 1
Add Object Command1 As MyButton With Caption='Move Me outside of the lines', Top = 35, Left = 5, width = 200, height = 30
Enddefine
Define Class MyButton As CommandButton
Procedure MouseMove
Lparameters nButton, nShift, nXCoord, nYCoord
If m.nButton = 1 AND BETWEEN(m.nYCoord,30,171)
This.Move(m.nXCoord, m.nYCoord)
WAIT WINDOW m.nYCoord nowait
Endif
Endproc
Enddefine
Por si lo necesitas. Saludos!
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.