IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

VB 6 et antérieur Discussion :

[VB6] DragDrop avec affichage de l'image durant son deplacement


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut [VB6] DragDrop avec affichage de l'image durant son deplacement
    J'utilise une façon de faire du DragDrop un peu special, car j'ai besoin que l'on voit l'image pendant son deplacement,
    Mon probleme se situe lors du passage d'un conteneur à un autre, un effet de traces apparait durant le temps du passage de l'un à l'autre, est-il possible d'ameliorer ?
    Existe-t-il une façon plus simple de faire du DragDrop avec affichage de l'image durant son deplacement?
    J'ai cherché sur plusieurs forums mais, ou j'ai mal formulé ma demande d'infos ou la chose n'est pas possible sous VB6

    Pour faire les essais si ca dit à quelqu'un,
    sur une Form, mettre 2 PictureBox portant le même nom PictContenaire, indexé 0 et 1
    sur l'une des deux y mettre 2 autres PictureBox portant le même nom PictDrag, indexé 0 et 1

    La partie '' Form_Load() '' n'est pas necessaire si tout est parametré lors de la construction du projet.
    Le code est un peu long, j'ai essayer de mettre des commentaires utiles, il peut etre copié-Collé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Option Explicit
    Dim NewLeft, NewTop As Integer ' pour calculer les nouvelles coordonnées
    Dim DemiH, DemiL As Integer ' pour memoriser la demi hauteur et la demi largeur
    Dim IndexContenaire As Integer ' pour memoriser le PictContenaire actif
     
    Private Sub Form_Load()
    'si non initialisé lors de la conception du projet, DEREMER toutes les ligne suivantes
    'Me.ScaleMode = vbTwips
    'PictDrag(0).ScaleMode = vbTwips: PictDrag(1).ScaleMode = vbTwips
    'PictContenaire(0).ScaleMode = vbTwips: PictContenaire(1).ScaleMode = vbTwips
    'PictDrag(0).Appearance = 0: PictDrag(1).Appearance = 0
    'PictContenaire(0).Appearance = 0: PictContenaire(1).Appearance = 0
    'Me.Height = 8805: Me.Width = 6735: Me.Top = 0: Me.Left = 0
    'PictContenaire(0).Left = 60: PictContenaire(1).Left = 60
    'PictContenaire(0).Width = 6495: PictContenaire(1).Width = 6495
    'PictContenaire(0).Height = 2925: PictContenaire(1).Height = 5025
    'PictContenaire(0).Top = 60: PictContenaire(1).Top = 3300
    'PictDrag(0).AutoSize = True: PictDrag(1).AutoSize = True
     
    'chargement de 2 petites images (adapter le chemin ou se trouvent ces images)
    'elles doivent etre plus petites que le plus petit des conteneurs
    PictDrag(0).Picture = LoadPicture("C:\PersoFrancis\MoyenPersonage2.bmp")
    PictDrag(1).Picture = LoadPicture("C:\PersoFrancis\PetitPersonage1.bmp")
    End Sub
     
    Private Sub PictDrag_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    'memorisation des divers elements utiles
    DemiH = Int(PictDrag(Index).Height / 2)
    DemiL = Int(PictDrag(Index).Width / 2)
    IndexContenaire = PictContenaire(PictDrag(Index).Container.Index)
    PictDrag(Index).ZOrder 'mise au premier plan
    End Sub
     
    Private Sub PictDrag_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
     'objet conteneur en TWIPS
     NewLeft = Int((PictDrag(Index).Left + X) - DemiL)
     NewTop = Int((PictDrag(Index).Top + Y) - DemiH)
     
     PictDrag(Index).Move NewLeft, NewTop
     'PictDrag(Index).Refresh '(suivant les performances de l'ordi)
     'passage d'un contenaire à un autre
     If PictDrag(Index).Top > PictContenaire(IndexContenaire).Height - DemiH Then
      IndexContenaire = 1
      Set PictDrag(Index).Container = PictContenaire(IndexContenaire)
     End If
     If PictDrag(Index).Top < -DemiH Then
      IndexContenaire = 0
      Set PictDrag(Index).Container = PictContenaire(IndexContenaire)
     End If
     'PictContenaire(IndexContenaire).Refresh'(suivant les performances de l'ordi)
    End If
    End Sub
    Private Sub PictDrag_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
     'l'affichage du PictDrag doit etre completement dans le PictContenaire
     'donc verification
     If PictDrag(Index).Left < 1 Then NewLeft = 0
     If PictDrag(Index).Left > PictContenaire(IndexContenaire).Width - PictDrag(Index).Width Then
      NewLeft = PictContenaire(IndexContenaire).Width - PictDrag(Index).Width
     End If
     If PictDrag(Index).Top < 1 Then NewTop = 0
     If PictDrag(Index).Top > PictContenaire(IndexContenaire).Height - PictDrag(Index).Height Then
      NewTop = PictContenaire(IndexContenaire).Height - PictDrag(Index).Height
     End If
     PictDrag(Index).Move NewLeft, NewTop
    End If
    End Sub
    En attendant une eventuelle sujestion, merci d'avoir parcourut ce post.

    ProgElecT
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Cherche un tout petit peu (pas loin).
    J'ai donné la réponse à Lucas il y a moins d'une semaine !

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Merci jmfmarques pour la prise en compte de ma question.

    J'ai parcouru les posts de Lucas et les reponses sujerées, en remontants 4semaines.
    je dois commencer à me faire vieux, je n'ai pas trouvé la reponse attendu.

    Une petite aide sur le post contenant la reponse ou indication qui devrait m'interesser !!!
    Je tient absolumant a que le DragDrop permet l'affichage de l'image durant son deplacement.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu n'as pas bien cherché, hein ?
    Bon j'y vais !
    Ne touches rien en attendant...
    et çà, cest quoi ?
    http://www.developpez.net/forums/sho...61&postcount=9
    où il suffit de remplacer le bouton de commande par une picturebox

    mais... attends encore ...
    Et ceci, qui va encore plus loin, c'est quoi ? de la guimauve ?

    http://www.developpez.net/forums/sho...d.php?t=156511

    Et l'intéressé, pourtant, c'est toi !....

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    j'ai trouvé le post signalé par jmfmarques: Deplacer un objet sur une form en mode Exploitation de Lucas42.

    Le probleme que je n'arrive pas à resoudre est l'effet de traces entre le passage d'un conteneur à l'autre.
    Les quelques lignes de code fourni font parti d'un programme d'optimisation de decoupe sur 2 surfaces, le passage de l'une
    à l'autre sont absolument necessaire ( le prog compilé fait plus de 700 K).
    Je ne peu modifier la disposition de ces surfaces, les utilisateurs seraient trop perturbés, et cela me demanderait pas mal de boulot ( l'ergonomie, qui satisfait maintenant, a ete longue a mettre en place et a convenir a chaqu'un).
    J'esperrai qu'une petite astuce génial me tirerai d'affaire.
    Je vais surveiller pendant une petite semaine ce post, puis je le fermerai si aucune solution au petit probleme ne trouve pas de solution.
    D'ailleurs c'est que pour la beauté du visu et ne dur que le temps du passage du contenaire à l'autre.

    Merci encor.

    ProgElecT
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu rigoles ?
    Aucune trace (prends le code jmf et pas celui de Lucas, pardi !)
    Attends !
    D'un container à l'autre ? C'est peut-être différent , en effet !
    Laisse-mopi y réfléchir !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effet survol d'un lien avec affichage d'une image
    Par apt dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/05/2011, 15h31
  2. affichage d'une image avec les servlets
    Par hassanovich dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 03/11/2006, 10h35
  3. Réponses: 3
    Dernier message: 01/06/2006, 19h45
  4. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59

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