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 :

fonction ,command et raccourcis


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut fonction ,command et raccourcis
    Bonjour,

    Je suis en vb6, j'utilise un command pour lancer une fonction (en fait je la lance quatres fois)...

    J'ai un raccourcis clavier qui appel la commande "call command_click", mais j'ai un soucis.

    Si je fais un appui prolongé sur la touche de raccourcis ou que j'appuis plusieurs fois assez vite ca rame, je voudrais lancer le traitement de la fonction, qu'elle se termine et ensuite la relancer.

    merci à vous

    bauhaus

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Quelle méthode utilises-tu pour cette touche de raccourci (code et lequel ou autre) ? (la réponse sera différente selon le cas de figure)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    Quelle méthode utilises-tu pour cette touche de raccourci (code et lequel ou autre) ? (la réponse sera différente selon le cas de figure)
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    ..
    If KeyCode = vbKeyG Then Call cmdNext_Click
    ..
    End Sub

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    tu n'appeles pas là une fonction ! Tu déclenches un évènement click !

    Je te suggère alors :
    -de mettre le code le ton évènement Click dans une fonction ou une procédure toto
    - d'appeler toto depuis l'évènement Click en question
    - d'appeler toto lorsque tu utilises ton raccourci
    - d'utiliser une variable booléenne static pour forcer la main à ta fonction ou procédure

    Exemple : un bouton Command1 et un Label (pour voir) Label1

    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
    Private Sub Command1_Click()
     voyons
    End Sub
     
    Private Function voyons() As String
      Static pas_permis As Boolean
      If pas_permis Then Exit Function
      pas_permis = True
      Dim i As Long
      For i = 1 To 100
       i = i * 2
       Label1.Caption = i
       '=================================
       ' n'est là que pour te permettre de conster que si tu cliques à nouveau
       'avant la fin de la fonction, tu ne la relances pas
       depart = Timer
       '============================
       Do While Timer < depart + 1
         DoEvents
       Loop
      Next
      pas_permis = False
    End Function
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = vbKeyG Then voyons
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    tu n'appeles pas là une fonction ! Tu déclenches un évènement click !

    Je te suggère alors :
    -de mettre le code le ton évènement Click dans une fonction ou une procédure toto
    - d'appeler toto depuis l'évènement Click en question
    - d'appeler toto lorsque tu utilises ton raccourci
    - d'utiliser une variable booléenne static pour forcer la main à ta fonction ou procédure

    Exemple : un bouton Command1 et un Label (pour voir) Label1

    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
    Private Sub Command1_Click()
     voyons
    End Sub
     
    Private Function voyons() As String
      Static pas_permis As Boolean
      If pas_permis Then Exit Function
      pas_permis = True
      Dim i As Long
      For i = 1 To 100
       i = i * 2
       Label1.Caption = i
       '=================================
       ' n'est là que pour te permettre de conster que si tu cliques à nouveau
       'avant la fin de la fonction, tu ne la relances pas
       depart = Timer
       '============================
       Do While Timer < depart + 1
         DoEvents
       Loop
      Next
      pas_permis = False
    End Function
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = vbKeyG Then voyons
    End Sub


    je viens de tester mais le probléme si je place mes appels de fonction

    a la place de depart = Timer

    la fonction voyon me lance plusieur fois les fonctions

    je ne sais pas si je suis clair là..

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    C'est clair !

    Mais cela veut dire que ta fonction tourne et se termine très vite et que tu aurrais alors le même problème en cliquant plusieurs fois de suite sur cOMMAND1 !!! (plus rien à voir avec ton seul raccourci).

    Remède : interdire le déroulement de la fonction lancée avant un délai d'attente "raisonnable" (2 secondes, par exemple)
    A la fin de ta fonction (juste avant le pas_permis = False) tu ajoutes tout bêtement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Depart = Timer
    Do while timer < depart + 2 'pour attendre 2 secondes)
      doevents
    Wend
    Il est maintenant clair que si tu recliques après 2 secondes, ou que tu laisses ton doigt sur la touche G plus de 2 secondes, la fonction se relancera ...
    Tu peux décider de la durée d'attente .... si tu veux ...

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

Discussions similaires

  1. [LibreOffice][Texte] Ajout de commandes pour raccourcis clavier sur Libre Office
    Par martinimy dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 31/12/2014, 16h15
  2. Fonction GetTarget et raccourcis Bureau.
    Par Nicolas Coolman dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2013, 11h18
  3. Fonction commande : indexation conditionnée
    Par orphean dans le forum Programmation (La)TeX avancée
    Réponses: 8
    Dernier message: 14/07/2007, 09h37
  4. Réponses: 10
    Dernier message: 07/10/2003, 16h59
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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