Page loading

Share your opinion
What do you think about gambaslinux.fr?
 
Interesting
It miss some informations
Excellent website
Results
WIDGETS GAMBAS
GAMBAS 3 SOFTWARES
TUTORIALS
Library
PICTUREBOX - picture Drag and drop
Sorry,french only for the moment...
Un drag and Drop d'une image
electric.jpg

Aujourd'hui, nous allons étudier plus en détail la fonction DRAG and DROP d'une image de GAMBAS.
nous allons creer une petite application avec une feuille Fmain, une Drawarea1 et une picturebox.
L'idée sera de pouvoir déplacer notre image n'importe ou sur la feuille.

creeons un projet et nommez le drag_easy
Les propriétés de Fmain sont :
Maximized = TRUE

creeons une drawarea1
les proprietes sont :
drawarea1.X = 0
drawarea.y = 0

creeons la fonction Fmain_resize()
et ecrivons ce code :

PUBLIC SUB Fmain_resize()
drawarea1.height = ME.height
drawarea1.width = ME.width
END

nous demandons lors d'une "Maximisation" soit agrandissement de la fenêtre de redimensionner la drawarea1 a son maximum par la commande : drawarea1.height = ME.height en verticale et drawarea1.width = ME.width en horizontale.

maintenant dans la drawarea1 creeons une pictureBox1 et insserons y une image (l'image de l'exemple)

tout est prêt  !

realisons notre DRAG and DROP :

PREMIERE ETAPE "LE DRAG"

le drag va être réalisé lorsque nous cliquerons sur la picturebox et que nous la bougerons.
donc voici la fonction :
PUBLIC SUB PictureBox1_mousedrag()


IF Mouse.Left THEN
    Drag.Icon = LAST.Picture
    LAST.Drag(LAST.Picture.Image)

  ENDIF

END

decortiquons le code :

IF Mouse.Left THEN est une boucle de test qui veut dire La souris prendra l'objet à déplacer à gauche.
N'essayez pas mouse.right ou mouse.middle cela ne marche pas.
nous dirons que c'est une phrase a ajouter systematiquement pour faire un drag.

Drag.Icon = LAST.Picture veut dire simplement que l'icone au moment du deplacement sera l'objet déplacé.
pour essayer mettez cette phrase en commentaire, et vous verrez qu'au  moment du déplacement, le curseur reste ...une simple fleche !

LAST.Drag(LAST.Picture.Image)
voila la fonction DRAG par excellence, c'est ce bout de code qui autorise le deplacement de l'objet
cela veut dire "le dernier Drag(deplacement) était une image à déplacer"

endif on sort de la boucle

entre Endif et END nous pourrions ajouter une boite à message du style :
message.info("j'ai déplacé l'élément!")
et nous verrons qu'à la fin du DRAG au moment du relachement de la souris la fenêtre s'affiche.

DEUXIEME ETAPE LE DROP

dans notre exemple qui va recevoir le DROP ? c'est notre drawarea1
N'oublions pas au début nous voulions déplacer une picturebox1 dans toute la drawarea1

Mettons dans la propriété "DROP" de la Drawarea1 à TRUE

Maintenant creeons une fonction qui va recevoir le DROP :

PUBLIC SUB DrawingArea1_Drop()
PictureBox3.X = Drag.X
PictureBox3.Y = Drag.Y

END

Décortiquons le code

PictureBox3.X = Drag.X
nous demandons simplement d'ajuster les coordonnées de la picturebox1 en X à la valeur de la fin du DRAG
PictureBox3.Y = Drag.Y
Idem pour la verticale avec Y

Sur vb a la firme Redmond, au moment du DRAG la picturebox1 originale disparait, suit le curseur et apparait au Drop. Nous pouvons faire pareil.
Dans la fonction DRAG precedente nous ajoutons simplement :
PictureBox1.Visible = FALSE

voyons le code entier :
PUBLIC SUB PictureBox1_MouseDrag()
IF Mouse.Left THEN
Drag.Icon = LAST.Picture
PictureBox1.Visible = FALSE
LAST.Drag(LAST.Picture.Image)
ENDIF
PictureBox3.Visible = TRUE
END

CONCLUSION :
un drag and drop a trois etapes essentielles:
une fonction "mousedrag" de l'emetteur du DRAG avec la boucle IF Mouse.Left THEN...ENDIF
la propriété du récepteur DROP est à "TRUE"
une fonction DROP du récepteur qui reçoit le drag (coordonnées,image,texte,etc...)

Voici les sources de cet exemple.
Bonne journee à tous.










Creation date : 06/05/2009 @ 15:14
Last update : 13/05/2009 @ 14:12
Category : PICTUREBOX
Page read 5936 times


Print the article Print the article


react.gifReactions to this article

Nobody gave a comment yet.
Be the first one to do it!


QUICK MENU
SEARCH




LANGUAGE
COMPONENTS
Other
LANGUAGE
Where, who?
VISITS

   visitors

   visitors online

ARCHIVES GAMBAS 1/2
^ Top ^