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.