https://foro.gambas-es.org/viewtopic.php?f=1&t=6667
-----------------------------------
Shell
Domingo, 08 Octobre 2017, 11:28

Drag Drop, Drag Source, Tag
-----------------------------------
Buenos días!.

La idea del ejemplo es poder intercambiar la imagen origen con la imagen destino de cualquiera de los PictureBox
y no limitarse solo a dos únicos lugares para hacer la operación de arrastre y soltar.

 [img]https://foro.gambas-es.org/files/images/768/intercambiarcartas.png[/img]

Este es el código fuente:

[code linenumbers=false syntax=gambas]
Public Sub Form_Open()
  
  'Cada una de los picturebox tiene asignado en su tag el nombre de cada una de las cartas
  
  Me.Title = "Intercambia la imagen destino y su origen" 
  Me.Center  
  
End

Public Sub CajaImagenes_MouseDrag()
  
  If Mouse.Left And Last.Picture <> Null Then  
    Drag.Icon = Last.Picture
    Last.Drag(Last.tag)       
  Endif 
  
End

Public Sub CajaImagenes_Drop() 
  
  Dim tmp As String   
  Dim pboxtemp As PictureBox
  
  If Drag.type = Drag.Text Then           
    'Se asigna el tag del picturebox fuente a la variable tmp
    tmp = Drag.Source.tag
    'Se asigna la dirección de memoria que contiene picturebox fuente al pboxtemp ( alias )
    pboxtemp = Drag.Source
    'Se le asigna a la propiedad tag del picturebox fuente el tag donde se haya hecho la operación drop
    Drag.Source.tag = Last.tag       
    'Se le asigna al picturebox fuente la nueva imagen
    pboxtemp.Picture = Picture[Last.tag]    
    'Se le asigna un nuevo tag al ultimo picturebox donde ha hecho la operación drop
    Last.tag = tmp       
    'Se le asigna al picturebox donde se ha hecho drop una nueva imagen
    Last.Picture = Picture[tmp]    
  Endif
  
End

Public Sub btnSalir_Click()
  
  Me.Close
  
End
[/code]

El próximo ejemplo "Trileros!".   :twisted: 

Saludos


