Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Gercho en Febrero 28, 2010, 07:14:00 pm
-
Buenas tardes, ¿cómo andan? Espero que de 10.
Bueno, les queria preguntar si se puede hacer algun drag & drop de shapes. En caso de que se pueda, no me dejarian el código.
Desde ya, gracias.
Saludos!
-
Hola, imagino que la respuesta es que no se puede ya que si compruebas las propiedades veras que no tienen propiedad DragMode y por otra parte no tienen Eventos.
-
Buenas tardes, ¿cómo andan? Espero que de 10.
Bueno, les queria preguntar si se puede hacer algun drag & drop de shapes. En caso de que se pueda, no me dejarian el código.
Desde ya, gracias.
Saludos!
lo que pasa es que son controles windowless, por eso no tienen handle ni eventos. porque no metes un shape adentro de un picture? eso por ahi te sirve
salduos
-
Es buena idea esa, pero no hay ninguna forma de hacerlo?
Saludos!
-
Es buena idea esa, pero no hay ninguna forma de hacerlo?
Saludos!
No, porque es WINDOWLESS, hay otros metodos para hacerlo, pero te vas a volver perra por una pavada! te conviene hacerlo con el picture.
saludos
-
Ok. Ya que no se puede, no se puede hacer que los labels sean redondos. Porque queria algun drag & drop con alguna herramienta que sea redonda.
Saludos!
-
Ok. Ya que no se puede, no se puede hacer que los labels sean redondos. Porque queria algun drag & drop con alguna herramienta que sea redonda.
Saludos!
eso no lo entendi. como que sean redondos? vos te referis a usarlos opacos y cortarle el fondo? te recomiendo que uses un control de usuario y en el mismo uses regiones (bordes redondos) sobre el hwnd del user control. saludos
-
Hay una manera bastante simple de simularlo.
Pone eso en un form y pone un par de shapes por ahi y listo
Option Explicit
Dim lXOffset As Single
Dim lYOffset As Single
Dim objCur As Object
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lXOffset = X: lYOffset = Y
Set objCur = ControlFromPoint(lXOffset, lYOffset)
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then
If Not objCur Is Nothing Then
objCur.Left = X - lXOffset
objCur.Top = Y - lYOffset
End If
End If
End Sub
Private Function ControlFromPoint(X As Single, Y As Single) As Object
Dim obj As Object
On Error Resume Next
For Each obj In Me
If X > obj.Left And X < obj.Left + obj.Width Then
If Y > obj.Top And Y < obj.Top + obj.Height Then
Set ControlFromPoint = obj
X = X - obj.Left
Y = Y - obj.Top
Exit Function
End If
End If
Next
End Function
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set objCur = Nothing
End Sub
-
Muchas gracias Cobein, me re sirve.
Gracias.
Saludos!