none
como mantener tag al usar drag and drop RRS feed

  • Pregunta

  • Buenas a todos, estoy realizando un programa y necesito hacer como una tienda. Arrastro los objetos a la cesta y despues genero un archivo con la propiedad "tag". El tema principal es que al soltar el producto en la cesta se quede guardado el "tag" donde tengo asignado una id.

    Espero que me puedan ayudar,gracias de antemano.

    sábado, 5 de enero de 2013 13:35

Todas las respuestas

  • Hola. No entiendo muy bien el tipo de archivo que generas. De todas formas, si te refieres a un form, por cada cesta de compra debes abrirlo con una variable de form y le insertas el tag que desees. ejemplo:

    sábado, 5 de enero de 2013 14:58
  • Perdona se me colgó el ordenador. El Ejemplo es el siguiente:

    Si Tienes un Form1

    Dim Frm as Form1

    Set Frm = new Form1

    form1.tag = "-----"

    ....

    Si no es eso lo que quieres. Por favor especifica un poco más para que podamos responderte.

    sábado, 5 de enero de 2013 15:01
  • no es eso, te explico mejor. El programa tiene media pantalla con productos y despues la otra para la cesta con picturebox vacios. Con el drag drop e conseguido copiar la imagen arrastrandola y soltando el producto en los picturebox de la cesta.

    por ejemplo, arrastro un ladrillo con tag 2, y lo suelto en la cesta. Luego al darle a un boton de comprar, que genere un documento txt con la id del producto que hay en la cesta.

    Ahora esta mejor explicado, a ver si me puedes ayudar .

    sábado, 5 de enero de 2013 15:08
  • Ya entiendo. Realmente lo que arrastras es una imagen cuyo id entiendo que es el nombre que le has puesto a la imagen. Pues bien te digo como lo haría yo. Crea un listbox oculto y cada vez que termines el dragdrop .additem Nombre imagen. Así si el usuario, te elimina algún producto antes de la facturación, lo puedes quitar del listbox. NO se si me he explicado. Realmente el picture tiene las imágenes para el usuario, pero tu listbox tiene el archivo que indicabas al principio.Saludos
    sábado, 5 de enero de 2013 15:18
  • esto es lo que tengo del codigo. No soy muy avanzado en vb y no se comoimplementar lo que me has comentado. Te agradeceria si me lo explicaras con un ejemplo si no te molesto mucho.

    gracias de antemano por tu ayuda.

    -----------------------------------------

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            i1.Image = Image.FromFile("F:\foto.png")
            a1.AllowDrop = True

    end sub

    -----------------------------------

    Private Sub i1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles i1.MouseDown

            Dim pb As PictureBox = CType(sender, PictureBox)
            pb.DoDragDrop(pb.Image, DragDropEffects.Copy)
            End Sub

    -----------------------------

        Private Sub a1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles a1.DragDrop
            Dim imagen As Image = CType(e.Data.GetData(DataFormats.Bitmap), Image)
            a1.Image = imagen
        End Sub

    ------------------------

        Private Sub a1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles a1.DragEnter
            If e.Data.GetDataPresent(DataFormats.Bitmap) Then
                e.Effect = DragDropEffects.Copy
            Else
                e.Effect = DragDropEffects.None
            End If
        End Sub



    sábado, 5 de enero de 2013 16:09
  • Debes almacenar los id en un objeto. Suelo usar en esos casos el objeto dictionary, arreglo o matriz asociativa.

    un form incrustado o flotante, lee de ese objeto y coloca datos del carrito de compras:nombre,precio, cantidd,importe

    Agrego: mira este sencillo y funcional programa que desarrollé en Microsoft Office Access, hace poco mas de 3 años. Las pantallas son táctiles.

    En este video muestro a un usuario del foro que bien puede emplearse para un salón de belleza.

    http://www.youtube.com/watch?v=XFiThAs-N_g

    • Editado guarracuco sábado, 5 de enero de 2013 19:45
    sábado, 5 de enero de 2013 19:28
  • estoy mirando para lo de los arrays pero solo encuentro para php. podrias ponerme un ejemplo de array? para conservar la id como e explicado yo?
    domingo, 6 de enero de 2013 22:05
  • http://support.microsoft.com/kb/187234/es?wa=wsignin1.0

    En ese enlace hay un ejemplo. Debes activar referencia a Microsoft Scripting Runtime.

    • Marcado como respuesta Nicolas Elvira lunes, 7 de enero de 2013 19:30
    • Desmarcado como respuesta Nicolas Elvira lunes, 7 de enero de 2013 19:46
    lunes, 7 de enero de 2013 1:08
  • Mira, he visto tu ejemplo, lo entiendo perfectamente pero estoy intentando implementarlo con el dragdrop y no hay forma. Tengo la cabeza que va a rebentar xD.

    Explico nuevamente el problema especificando mejor:

    - Imaginemos que tengo una picturebox con una imagen de un ladrillo.

    - Arrastro el ladrillo a un picturebox vacio que hay en el apartado de carrito usando dragdrop.

    - al soltar el ladrillo al carrito, que generé un "id".

    - Y ya para terminar, cuando le de al boton de "generar", cree un txt con el id dentro.

    lo del txt ya bsucaré como se hace, pero lo del id si necesito algo mas de ayuda y gracias a todos de antemano.

    lunes, 7 de enero de 2013 19:57
  • coloca al ladrillo propiedad index=0, y coloca un numero en la propiedad tag.

    la imagen que recibirá, también. en la imagen que recibirá deseas obtener el tag y el nombre de la que arrastras hasta él.

    en el evento

    Private Sub recibe1_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single)
    If TypeOf Source Is Image Then
        recibe1(Index).Picture = Source.Picture
        msgbox(Source.Tag)'almaceno en un arreglo o matriz el tag
        msgbox(Source.Name)'almaceno el nombre
    End If
    End Sub

     en vez de usar el msgbox, lo insertas en un arreglo, que para eso te indiqué el ejemplo del dictionary.
    martes, 8 de enero de 2013 1:22