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 :

[VB]Se servir des flèches


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Par défaut [VB]Se servir des flèches
    Bonjour!

    J'aimerais savoir comment me servir des 4 flèches du clavier dans mon programme... J'ai essayé avec l'évènement Form_Keypress, mais ça ne semble pas vouloir fonctionner

    Merci pour votre aide!

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben tu veu t'en servir pour quoi faire ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Par défaut
    Afin de servir de contrôle pour le petit jeu que je développe...


    Merci!

  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
    as-tu vérifié que la propriété Keypreview de ta form est bien fixée à TRUE ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Bonsoir,
    Voici un exemple, place un PictureBox sur ta Form et sers-toi des flêches de direction.
    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
     
    Private Sub Form_Load()
        Me.KeyPreview = True
    End Sub
    '
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    '   tu peux aussi vérifier pour empêcher de sortir de la Form...
        With Picture1
            Select Case KeyCode
                Case vbKeyUp:       .Top = .Top - 200
                Case vbKeyDown:     .Top = .Top + 200
                Case vbKeyLeft:     .Left = .Left - 200
                Case vbKeyRight:    .Left = .Left + 200
            End Select
        End With
    End Sub
    jpleroisse

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Par défaut
    J'ai un picture box avec une méga bmp... mais en mettant un breakpoint dans l'évènement, ça rentre pas dans l'évènement ce qui signifie que ça fontionne pas

    Qu'est-ce que c'était censé faire, faire bouger l'image dans le picture box?

    D'autres suggestions?

    Merci pour ton aide leroissejp, c'est très apprécié!

  7. #7
    Membre expérimenté 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
    Par défaut
    En principe, ca ne fonctionne pas avec l'évenement Keypress mais avec les évenements keydown et keyup. Donc il me semble que le code de leroissejp devrait fonctionner (j'ai pas pu tester pour l'instant).

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu as quoi comme contrôle sur ta Form...,
    Je ne suis pas sur que cela soit la bonne maniére, mais voila , sur une form avec un combobox, même avec Form.KeyPreview à True .. je passe pas dans le keyUp de ma form mais dans celui du combo... , j'ai rajouté du code pour appeller le keyUP de la form...

    oups... je sais pas si je suis clair..
    8) mais ..regarde ce code , pour une Form avec un controle combobox...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ComboBox1_KeyUp(KeyCode As MSForms.ReturnInteger, Shift As Integer)
      Debug.Print "Combobox1_keyup"
      Dim i As Integer
      i = KeyCode
      Form_KeyUp i, Shift
     
    End Sub
     
     
     
    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    Debug.Print KeyCode
    End Sub

  9. #9
    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
    Si, comme je le pense, tu cherches simplement à déplacer un objet sur ta form à l'aide des flêches, essayes tout simplement ce petit code dans un projet doté d'une form et d'un picturebox picture1. Ajuoutes-y tous les controles que tu veux et écris cela dans l'événement keydown de ta form,
    après t'être assuré d'avoir fixé à true la propriété KeyPreview de ta form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
      Dim a
      a = 50 ' amplitude du mouvement
      If KeyCode = 40 Then Picture1.Top = Picture1.Top + a 'utilisation de la   flêche basse
      If KeyCode = 39 Then Picture1.Left = Picture1.Left + a 'utilisation de la flêche droite
      If KeyCode = 38 Then Picture1.Top = Picture1.Top - a 'utilisation de la flêche haute
      If KeyCode = 37 Then Picture1.Left = Picture1.Left - a 'utilisation de la flêche gauche
    End Sub
    L'événement form_keypress intervient indépendament de ce que la souris pointe ou non sur un autre objet (essayes et tu verras) car tout objet étant dans la form, l'événement concerne en priorité la forù

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par jmfmarques
    L'événement form_keypress intervient indépendament de ce que la souris pointe ou non sur un autre objet (essayes et tu verras) car tout objet étant
    dans la form, l'événement concerne en priorité la forù
    as-tu essayer de placer un combobox sur ta form ?

  11. #11
    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
    Bon je viens d'installer un combobox, pour voir : ca marche (le picture box se déplace avec les fleches)

    J'ai essayé aussi l'inverse : faire déplacer le combobox avec les fleches : ca marche aussi !

    QUE VEUX-TU FAIRE EXACTEMENT ????

  12. #12
    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
    Dans mon message prédédent il convient de lire : " l'événement form-Keydown intervient..."

  13. #13
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    en fait c'est pas avec un combobox mais un datacombo... , Sinon moi je ve rien faire... mais lorsque j'ai fait mes test pour répondre à la question ma form n'étais pas vide il y avais 3 dataCombo dessus.. et si l'un des datacombo à le focus .. les événemet KEyUp et KeyDown ne sont pas transmis à la Form.. sinon nightwish ne nous as pas dit le genre de contôle qu'il aura sur sa Form ... mais si ce n'est que des pictureBox ... il ne devrai pas y avoir de problémes..

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Bonjour,
    nightwish, mon code n'est pas censé faire bouger l'image dans le PictureBox, mais le PictureBox lui-même et il Fonctionne!!.
    Si tu plaçais ton code pour voir.

    jpleroisse

  15. #15
    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
    Dans ma version (VB5) je ne vois pas de ComboData. Je ne possède qu'un contrôle Data. Avec lui, tout marche également.
    Le seul problème qui pourrait se présenter est que certains contrôles (textBox, ComboBox, etc...) répondent également aux touches gauche, droite, etc... pour provoquer des déplacements (ligne, article, etc...) à l'intérieur du contrôle.
    Il est tout-à-fait possible de palier cette difficultés par une gestion conditionnelle dans les événements keydown de ces contrôles (si.. action à définir.... alors si l'une des 4 flêches est utilisée.. alors keycode = 0)
    Si comme je le pense, la finalité est de construire un jeu, il suffit d'un bouton de démarrage/fin alternatif de l'action et d'une variable/drapeau dont on se sert dans le code de l'événement keydown du/des contrôle(s) en cause.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Par défaut
    Le code de leroissejp fonctionne (désolé d'avoir dit que ça fonctionnait pas!! 8) ), mais ce que j'aimerais, c'est que le picturebox reste statique sur le formulaire et que quand je joue avec les flèches, celui-ci se positionne sur une partie d'une méga photo qui représente la map du jeu...

    Est-ce que c'est possible ou si c'est moi qui est dans le champs complètement?

    Merci pour votre aide, vous êtes sympa!

  17. #17
    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
    C'est largement posible, mais à condition que :

    - ton image à déplacer soit composée d'une partie "transparente" (sans quoi ce serait moche)
    - que tu saches "jouer" avec l'API de Windows pour manipuler les pixels

    Il ne me semble pas que tu en sois arrivé à ce stade. Alors : il faut que tu commences par le commencement et, le jour où tu en seras arrivé à un début de résultat, on pourra voir le reste, pas avant ! Il ne me semble pas non plus, en effet, que la vocation de ce forum soit de construire les applications des uns ou des autres, mais de les guider dans leurs efforts pour y parvenir...

  18. #18
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Petit exemple de code tout simple qui déplace un contrpôle Image sur une Form. En supposant que l'image est plus grande que la Form...

    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
    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
        Dim s As Integer
        If Shift = 2 Then
            s = 10
          Else
            s = 1
        End If
        Select Case KeyCode
          Case vbKeyLeft
            Image1.Left = Image1.Left - 30 * s
          Case vbKeyRight
            Image1.Left = Image1.Left + 30 * s
          Case vbKeyUp
            Image1.Top = Image1.Top - 30 * s
          Case vbKeyDown
            Image1.Top = Image1.Top + 30 * s
        End Select
    End Sub
    Reste à gérer les dépassements: lorsque Top et Left sont à zéro, par exemple.

Discussions similaires

  1. Utilisation des flèches gauche et droite sous IE
    Par effiix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2007, 16h01
  2. [LoginModule][Jboss] Comment se servir des Login Module ?
    Par kurtalis dans le forum Wildfly/JBoss
    Réponses: 8
    Dernier message: 11/05/2006, 11h01
  3. Utilisation des flèches du clavier
    Par yenlui dans le forum C
    Réponses: 2
    Dernier message: 18/04/2006, 19h50
  4. Réponses: 4
    Dernier message: 15/02/2006, 11h00
  5. Codes étendus des flèches directionnelles
    Par coca dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 11/12/2002, 17h10

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