Lorsque l'utilisateur déplace un élément sur un contrôle qui accepte le glisser-déposer, le script du contrôle reçoit l'événement drop.
Il est possible de gérer l'événement drop avec une fonction de ce type :
on drop the_quantity onto the_object at the_location
-- gérer l'événement drop
end drop
drop possède trois paramètres : the_quantity, une référence à l'objet déposé - éventuellement le résultat d'un événement export depuis un autre objet de Smile -, the_object, une référence au contrôle qui reçoit le glisser-déposer, et the_location, les coordonnées de la position relative à laquelle l'élément a été déposé.
Lorsque vous déposez un élément d'une liste dans cette même liste, celle-ci ne reçoit que l'événement export, elle ne reçoit pas l'événement drop.
drop ne sera appelé que si l'élément déposé appartient à la liste des types de données autorisés, définis par la propriété «class flav». Par exemple, le script suivant permet de gérer le glisser-déposer de texte dans un liste : ce n'est possible que si la propriété «class flav» de la liste contient la chaîne "TEXT".
on drop the_string onto the_object
set the_list to contained data of the_object
set contained data of the_object to the_list & the_string
end drop
Par défaut, Smile n'informe pas des erreurs d'exécution survenant dans la fonction drop. si vous voulez être averti des erreurs d'exécution qui peuvent survenir dans la fonction drop, il suffit d'encapsuler l'ensemble de votre fonction par try [...] on error [...] end try et de gérer les erreurs éventuelles.
|