Autor Tema: Drag & Drop de Shapes  (Leído 4706 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Gercho

  • Bit
  • Mensajes: 6
  • Reputación: +0/-0
  • Nada es verdad, todo está permitido
    • Ver Perfil
Drag & Drop de Shapes
« 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!

erbuson

  • Kilobyte
  • **
  • Mensajes: 75
  • Reputación: +11/-1
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #1 en: Febrero 28, 2010, 07:32:08 pm »
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.


coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #2 en: Febrero 28, 2010, 07:41:48 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!
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
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

Gercho

  • Bit
  • Mensajes: 6
  • Reputación: +0/-0
  • Nada es verdad, todo está permitido
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #3 en: Febrero 28, 2010, 07:49:41 pm »
Es buena idea esa, pero no hay ninguna forma de hacerlo?

Saludos!

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #4 en: Febrero 28, 2010, 08:00:16 pm »
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
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

Gercho

  • Bit
  • Mensajes: 6
  • Reputación: +0/-0
  • Nada es verdad, todo está permitido
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #5 en: Febrero 28, 2010, 08:22:14 pm »
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!

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #6 en: Febrero 28, 2010, 08:26:52 pm »
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
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #7 en: Febrero 28, 2010, 10:12:49 pm »
Hay una manera bastante simple de simularlo.

Pone eso en un form y pone un par de shapes por ahi y listo
Código: [Seleccionar]
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
« última modificación: Febrero 28, 2010, 10:15:41 pm por cobein »

Gercho

  • Bit
  • Mensajes: 6
  • Reputación: +0/-0
  • Nada es verdad, todo está permitido
    • Ver Perfil
Re:Drag & Drop de Shapes
« Respuesta #8 en: Febrero 28, 2010, 10:17:52 pm »
Muchas gracias Cobein, me re sirve.

Gracias.

Saludos!