Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2005
    Messages : 6
    Points : 4
    Points
    4

    Par défaut Comment faire pour faire glisser un objet dans une form ?

    Bonsoir,
    Voilà, j'ai developpé un autre petit programme (pas encore herbergé sinon j'aurais mis un lien) et je voudrais savoir si on peut faire "glisser" un objet sur une form pendant l'éxecution ?

    Plutot que de changer left et top pixel par pixel ce qui est vraiment très long et mange beaucoup de mémoire pour presque rien.

    Par exemple : La command left 1000 top 1000 je voudrais la glisser en left 2000 top 2000 mais pas d'un coup sec, qu'on la voit glisser.

    Merci.

  2. #2
    Membre habitué Avatar de Mandalar
    Profil pro
    Étudiant
    Inscrit en
    mai 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2004
    Messages : 121
    Points : 128
    Points
    128

    Par défaut

    A part avec un timer et un changement de position X et Y par 10/50/100 (?) pixels, je vois pas trop comment on pourrait faire!

  3. #3
    Membre du Club
    Inscrit en
    août 2005
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 62
    Points : 63
    Points
    63

    Par défaut

    Glisser et déplacer
    Lors de la création d'applications Visual Basic, il arrive souvent de faire glisser des ‎contrôles sur une feuille. Les fonctions glisser-déplacer de Visual Basic permettent ‎d'étendre cette possibilité à l'utilisateur au moment de l'exécution. On appelle glisser ‎l'action qui consiste à déplacer un contrôle tout en maintenant enfoncé un bouton de
    la souris, et déplacer l'action qui consiste à relâcher ce bouton.‎
    Note Lorsque vous faites glisser un contrôle au moment de l'exécution, il ne se déplace pas ‎automatiquement. Vous devez programmer son nouvel emplacement comme décrit à la section ‎‎« Déplacement d'un contrôle », plus loin dans ce chapitre. Souvent, le glissement sert ‎uniquement à indiquer qu'une action doit être exécutée. Le contrôle retrouve alors sa position ‎initiale lorsque l'utilisateur relâche le bouton de la souris.‎

    À l'aide des propriétés, des événements et des méthodes associés aux opérations ‎glisser-déplacer décrites dans le tableau suivant, vous pouvez indiquer la signification ‎d'une opération de glissement et, le cas échéant, les conditions de son déclenchement, ‎pour un contrôle donné.‎
    Catégorie Élément Description

    Propriétés DragMode Permet le glissement automatique ou manuel d'un contrôle.‎
    DragIcon Indique l'icône à afficher lors du glissement du contrôle.‎
    Événements DragDrop Reconnaît la dépose d'un contrôle sur l'objet.‎
    DragOver Reconnaît le glissement d'un contrôle sur l'objet.‎
    Méthodes Drag Initialise ou arrête un glissement manuel.‎

    Tous les contrôles, à l'exception des contrôles Menu, Minuterie (Timer), Ligne (Line) ‎et Forme (Shape), prennent en charge les propriétés DragMode et DragIcon ainsi que ‎la méthode Drag. Les feuilles reconnaissent les événements DragDrop et DragOver, ‎mais pas les propriétés DragMode et DragIcon ni la méthode Drag.‎
    Note Vous ne pouvez pas faire glisser un contrôle qui a le focus. Pour empêcher un contrôle ‎de recevoir le focus, affectez la valeur False à sa propriété TabStop.‎
    Activation du glissement automatique
    Pour permettre à l'utilisateur de faire glisser un contrôle, affectez à la propriété ‎DragMode de ce dernier la valeur 1-Automatic.‎
    Lorsque vous affectez la valeur Automatic à la propriété Dragmode, le glissement est ‎toujours activé. Pour mieux contrôler les opérations de glissement, affectez-lui la ‎valeur 0-Manual décrite à la section « Activation et désactivation du glissement », plus ‎loin dans ce chapitre.‎
    Note Lors d'un glissement automatique, le contrôle auquel le glissement est appliqué ne ‎reconnaît pas d'autres événements souris.‎

    Modification de l'icône de glissement
    Lors du glissement d'un contrôle, Visual Basic fait glisser, à la place du contrôle lui-‎même, un contour grisé du contrôle qui représente l'icône de glissement par défaut. ‎Vous pouvez remplacer ce contour par d'autres images à l'aide de la propriété ‎DragIcon qui contient un objet Picture correspondant à une image graphique.‎
    La méthode la plus simple pour définir la propriété DragIcon consiste à utiliser la ‎fenêtre Propriétés. Sélectionnez la propriété DragIcon, puis cliquez sur le bouton ‎Propriétés pour choisir un fichier contenant une image graphique dans la boîte de ‎dialogue Charger une icône.‎
    Vous pouvez affecter des icônes à la propriété DragIcon depuis la bibliothèque ‎d'icônes de Visual Basic (ces icônes se trouvent dans le dossier \Program ‎files\Microsoft Visual Basic\Icons). Vous pouvez aussi créer vos propres icônes de ‎glissement à l'aide d'un programme graphique.‎
    Au moment de l'exécution, il est possible de sélectionner une image d'icône de ‎glissement en affectant la valeur de la propriété DragIcon d'un contrôle à la même ‎propriété d'un autre contrôle :‎
    Set Image1.DragIcon = Image2.DragIcon

    Vous pouvez également définir la propriété DragIcon au moment de l'exécution en ‎affectant la valeur de la propriété Picture d'un contrôle à la propriété DragIcon d'un ‎autre contrôle :‎
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Set Image1.DragIcon = Image3.Picture

    Vous pouvez aussi utiliser la fonction LoadPicture :‎
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Set Image1.DragIcon = LoadPicture("c:\Program _‎
    	files\Microsoft Visual Basic\Graphics\Icons\ _‎
    ‎\Computer\Disk04.ico")‎

    Pour plus d'informations sur la propriété Picture et la fonction LoadPicture, reportez-‎vous au chapitre 12, « Utilisation du texte et des graphiques ». Reportez-vous ‎également aux sections « Picture, propriété » et « LoadPicture, fonction » du
    Manuel de référence du langage dans les Manuels en ligne‎


    Lorsque l'utilisateur relâche le bouton de la souris après avoir fait glisser un contrôle, ‎Visual Basic génère un événement DragDrop. Il est possible de répondre à cet ‎événement de plusieurs manières. Même si le contrôle ne se déplace pas ‎automatiquement vers son nouvel emplacement, vous pouvez écrire un code pour ‎l'amener à cet emplacement (indiqué par la dernière position du contour grisé). Pour ‎plus d'informations, reportez-vous à la section « Déplacement d'un contrôle ».‎
    Les deux termes source et cible sont importants dans la description des opérations ‎glisser-déplacer.‎

    Si le pointeur de la souris se trouve à l'intérieur de la bordure d'un contrôle lorsque le ‎bouton est relâché, ce contrôle devient la cible. S'il se trouve dans une zone vide d'une ‎feuille, celle-ci devient la cible.‎
    L'événement DragDrop fournit trois arguments, source, x et y. L'argument source ‎désigne le contrôle qui est déposé sur la cible.‎
    Étant donné que l'argument source est déclaré As Control, utilisez-le exactement ‎comme un contrôle. Autrement dit, vous pouvez vous référer à ses propriétés ou ‎appeler une de ses méthodes.‎
    L'exemple suivant illustre la façon dont la source et la cible agissent interactivement. ‎La source est un contrôle Image dont la propriété Picture a été définie pour charger
    un fichier d'icônes types représentant quelques dossiers. Sa propriété DragMode a
    la valeur 1-Automatic, et un fichier d'icônes types glisser-déplacer a été affecté à la ‎valeur de sa propriété DragIcon. La cible, qui est aussi un contrôle Image, contient ‎l'image d'un dossier ouvert.‎
    Ajoutez la procédure suivante au second contrôle Image de l'événement DragDrop :‎
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Image2_DragDrop(Source As Control, _‎
    		X As Single, Y As Single)‎
    	Source.Visible = False
    	Image2.Picture = LoadPicture("c:\Program" _‎
    		&" Files\Microsoft Visual" _‎
    		&" Basic\Graphics\Icons\Office\Files03a.ico")‎
    End Sub

  4. #4
    Membre habitué Avatar de Mandalar
    Profil pro
    Étudiant
    Inscrit en
    mai 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2004
    Messages : 121
    Points : 128
    Points
    128

    Par défaut

    Ca c'est pour le drag'n drop, mais ce qu'il veut faire, c'est uniquement faire "glisser" un objet de coordonnées (x,y) a des coordonnées(x2,y2), pour avoir un rendu visuel sympas(je suppose), sans intervention de la souris!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2005
    Messages : 6
    Points : 4
    Points
    4

    Par défaut

    Exact, pas de drag n' drop, mais une éxecution automatique, où l'utilisateur n'intervient pas du tout.

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/04/2013, 23h35
  2. Comment faire pour utiliser plusieurs fonctions logiques dans une condition ?
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/11/2010, 11h37
  3. Réponses: 15
    Dernier message: 10/06/2010, 16h06
  4. Réponses: 3
    Dernier message: 14/05/2009, 13h39
  5. Réponses: 20
    Dernier message: 23/09/2005, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo