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 :

Comment déplacer dynamiquement un contrôle


Sujet :

VB 6 et antérieur

  1. #1
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut Comment déplacer dynamiquement un contrôle
    J'ai trouvé dans la FAQ comment créer des contrôles dynamiquement. Maintenant je voudrais pouvoir les bouger en mode RUN.
    Genre Créer un éditeur de Form, mais c'est moi qui le pilote.

    Dit autrement c'est faire du dessin vectoriel (le contrôle de type shape par exemple) et de le déplacer à loisir.
    Les contrôles vectoriels seront enregistrés dans une BDD, mais ça je sais faire.

    merci

  2. #2
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    il suffit d'agir sur les propriétés Left, Top (pour l'emplacement sur la feuille) ainsi que Heigh et Width (pour la taille du controle)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Je m'aperçois que je n'ai pas été assez précis.
    Je voudrais faire du drag and drop avec les contrôles.

    1)Au Run de l'appli il n'y a aucun contrôle
    2)puis il y a un traitement qui fabrique des contrôles dynamiquement.
    3)l'utilisateur peut les déplacer.

    Si je n'y arrive pas effectivement j'essaierai d'utiliser les clics de souris pour déplacer le contrôle à l'endroit du curseur.

    merci.

  4. #4
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Tu as tout a fait été suffisament précis :
    Exemple, nouveau projet avec juste un bouton sur la form.
    tu met ceci comme code et tu compile :

    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
    Option Explicit
     
    Dim FirstX As Single
    Dim FirstY As Single
    Dim Down As Boolean
     
    Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     
        Down = True
        FirstX = X
        FirstY = Y
     
    End Sub
     
    Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Down = True Then
    Command1.Left = Command1.Left + X - FirstX
    Command1.Top = Command1.Top + Y - FirstY
     
    End If
     
    End Sub
     
    Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Down = False
    End Sub

  5. #5
    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
    Points : 4 674
    Points
    4 674
    Par défaut
    En d'autres termes et plus simplement :
    Il n'y a aucune différence de traitement entre un contrôle créé dynamiquement et un contrôle créé "physiquement" en mode design.

    Que le contrôle ait été créé d'une façon ou de l'autre, les mêmes méthodes peuvent lui être appliquées, qu'il s'agisse d'un drag an drop, d'un déplacement, d'un redimensionnement, ou de toute modification de telle ou telle autre de ses propriétés.

    Dans de telles conditions : la question à poser au demandeur est simple : avant même de parler de contrôles dynamiques : sait-il appliquer ces méthodes à des contrôles créés "normalement" .

  6. #6
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    Merci pour ces premiers éléments, MAIS :

    je ne sais pas comment identifier le contrôle qui est sélectionné.

    Avec un contrôle fait en design je sais rajouter du code dans les trigger d'evenement.
    Mais comment faire avec un contrôle dynamique?
    dois je faire une boucle sur la collection qui contiendrait l'évenement onpush?

    En d'autre terme comment accéder au OnPush du contrôle dynamique N°9 par exemple?

    re-merci

  7. #7
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Tes contrôles dynamique font parti d'une collection (ils ont tous un index qui est donné en paramètre des evenements). Tu remplace tous les
    par
    et le tour est joué

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par avigeilpro
    Tes contrôles dynamique font parti d'une collection (ils ont tous un index qui est donné en paramètre des evenements). Tu remplace tous les
    par
    et le tour est joué

    FAUX, s'ils sont créé avec la méthode Controls.Add (ou tu m'expliques comment, je suis très interessé )

  9. #9
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Je pensait qu'il les avait créé avec Load et un control ayant l'index 0
    Perso c'est ce que j'aurais fait

  10. #10
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Encore une fois, avi :
    Citation Envoyé par castorameur
    1)Au Run de l'appli il n'y a aucun contrôle
    2)puis il y a un traitement qui fabrique des contrôles dynamiquement.
    désolé

  11. #11
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Faut vraiment que j'aille dormir parce que la ... soit je suis fatigué, soit la myopie me guette

  12. #12
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par avigeilpro
    Faut vraiment que j'aille dormir parce que la ... soit je suis fatigué, soit la myopie me guette
    mais tu n'as peut-etre pas forcement tort, vu qu'il ne nous a pas dit quelle méthode il a utilisé pour créé ses controles

    Moi, je m'en tiens à ce qui est écrit en français, dans le texte, et sans jouer encore une fois aux devinettes !

  13. #13
    Membre éprouvé
    Homme Profil pro
    Indépendant X3 et SQL server
    Inscrit en
    Juillet 2006
    Messages
    865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Indépendant X3 et SQL server
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2006
    Messages : 865
    Points : 1 091
    Points
    1 091
    Par défaut
    C'est plutôt avec un controls.add car je n'ai aucun contrôle au RUN

    En fait je fait une lecture d'un script et je fabrique autant de contrôle (Line par exemple) que nécéssaire.

    Une fois fabriqué, les contrôles (Line par exemple) sont déplaçables

  14. #14
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Peut tu mettre le morceau de code qui te permet de créer ton control ?

Discussions similaires

  1. [2K8] Comment répéter dynamiquement des contrôles
    Par abbepierre94 dans le forum SSRS
    Réponses: 9
    Dernier message: 29/11/2010, 13h29
  2. Réponses: 3
    Dernier message: 27/03/2008, 14h41
  3. Réponses: 5
    Dernier message: 22/11/2006, 23h24
  4. [VB.Net] Comment créer dynamiquement un contrôle bouton ?
    Par robert.michel9 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/01/2006, 13h49

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