drag and drop en image ?

bonsoir, je fait un drag and drop sur des canvas sur la mme fentre, j’ai constat que l’or du drag c’est un rectangle gris, j’aurait voulu que ce soit l’image qui soit afficher durent le drag, il y a une possibilit ou c’est pas possible ? quelle serait la mthode ?

OS ?

Drag depuis le disque dur vers le Canvas, je suppose.

Sur macOS, l’image glissée sur le Canvas est affichée dans le glissé, sur mon El Capitan.

Dans l’autre sens, c’est Xojo qui est en charge et un exemple dans le dossier Examples permet de voir cela. (une voiture).

il faut assigner l’image souhaite dragitem.dragpicture
si possible au moment o on cre le dragitem.

https://documentation.xojo.com/index.php/DragItem.DragPicture

on peut passer la dragpicture lors de la cration du dragitem, en option.
https://documentation.xojo.com/index.php/DragItem.Constructor(r_as_RectControl,_x_as_Integer,_y_as_Integer,_width_as_Integer,_height_as_Integer,_DragPicture_as_Picture)

Merci Jean-Yves :slight_smile:

j’ai mis l’image du canvas, mais il me l’affiche en drag en taille normal pas en taille du canvas

dans l’venement paint du canvas j’ai

g.DrawPicture(me.ImageCarte,0,0,100,151,0,0,659,1028)

voil le code que j’utilise pour le drag :

dim d as DragItem
d=New DragItem (self, Carte.left,Carte.top,Carte.width,Carte.height)
d.picture = Carte.ImageCarte
d.DragPicture = Carte.ImageCarte
d.drag

faut dire aussi que j’utilise la doc de 2002 en Fr pour apprendre :smiley:

comment faire pour l’avoir en miniature ? (100,151) ce drag en image ?

Emile,

j’ai fait un tableau de 66 cartes d’un jeu de divination, il y a 36 canvas donc sur la fenetre, je veux pouvoir dplacer une carte a la place d’une autre, il y a un echange de position entre les deux carte, tout marche bien mais j’aurait voulu qu’une miniature de l’image soit afficher a la place du rectangle au drag ans drop, Jean-Yves m’a donner la solution mais l’image est en taille normal, donc elle est norme moi j’aurait voulu la taille renseigner de l’venement “paint” du canvas c’est a dire 100151 au lieu de la taille rel de l’image 659*1028…

il faut utiliser les fonctions de scaling de g.drawpicture, juste avant d’assigner l’image rduite dragpicture
https://documentation.xojo.com/index.php/Graphics.DrawPicture

Jean-Yves,

c’est l’objet l’or du drag que je veux qu’il soit afficher comme rgler dans “paint” l’vnement du canvas…

en faite l’image que j’envoi dans dragitem.DragPicture est en 6591028, je veux que l’objet “drag” soit afficher en 100151…

Jean-Yves je pense avoir compris ce que tu a dis j’avais pas tout compris je vais faire le teste

voila, j’ai russi, comme je suis dbutant j’ai pas du faire a la mthode conventionnelle, d’ailleur dis moi ce que tu en pense Jean-Yves :wink:

voil le code :

dim g as Canvas
g = new Canvas
g.backdrop = New Picture (100,151,32)
g.backdrop.Graphics.DrawPicture(Carte.ImageCarte,0,0,100,151,0,0,659,1028)
d.DragPicture = g.backdrop

dim p as new picture( 100,151,32)
if p<>nil then
  p.Graphics.DrawPicture(Carte.ImageCarte,0,0,100,151,0,0,659,1028)
  d.DragPicture = p
end if

Merci Jean-Yves… je vais corriger ce semble bien plus propre ce que tu propose :wink:

modification faite et a marche, merci, et de plus je comprend mieux comment faire pour la prochaine fois a propos des pictures :wink:

MERCI :slight_smile:

,32 n’est pas obligatoire.

Merci Emile pour cette prcision :wink:

As-tu essay ? (je ne sais pas si cela change quelque chose dans ton cas).

As-tu lu en quoi cest diffrent ?
(avec: la transparence se fait par masque, sans: la transparence se fait en RGBA, A = valeur du transparent, lis la doc).

Emile, j’utilise la doc du langage de 2002 de ReelBasic, et oui je connais trs peu l’anglais… sinon, non je n’est pas ssay car a change pas grand chose pour moi de le mettre ou pas… ce sont des scan milliard ? de couleur les picture que j’affiche…