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

IHM Discussion :

[Formulaire] verrouillage des touches clavier suite


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut [Formulaire] verrouillage des touches clavier suite
    Bonjour, j'ai essayé de reutiliser ce code, pour parfaire un de mes sous formulaire, et empecher l'acces à une partie cachée...
    j'ai essayé comme cela

    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
     
    Private Sub Form_Load()
    Dim Flag As String
    Flag = 1
    End Sub
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    'Empêcher touche PageUp/PageDown/End/Origine
    If Flag = 1 Then
        If KeyCode = vbKeyPageUp Or KeyCode = vbKeyPageDown Or KeyCode = vbKeyEnd Or KeyCode = vbKeyHome Or KeyCode = vbKeyUp Or _
        KeyCode = vbKeyDown Then
            KeyCode = 0
        End If
    End If
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Dim Flag As String
    Flag = 0
    End Sub
    mais ça ne donne rien (ma variable n'est pas bien définie, sans nul doute...)
    Je l'appel su le load pour la mettre à 1
    et sur 'lunload je la remet à 0, mais je ne lui dis aps comme il veut l'entendre apparement...

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    2 questions = 2 pb sur le type de variable.

    Attention VB est souple mais il faut un minimum de rigueur sur le type des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Machin As String
    Machin = 1
    Quand tu fais un test conditionnel ça ne marchera que si tu fais
    Pour résumer Flag ne sera jamais égal à 1 (numérique) puisque c'est une chaine "1", OK ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Merci
    Je vois ce que tu veux dire (a peu près)... je définit une chaine (string), donc si je demande un sans les "" qui caracterisent la chaine ce n'est pas bon...
    Du coup, j'ai appliqué ton exemple comme ceci :

    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
     
    Private Sub Form_Load()
    Dim Flag As String
    Flag = 1
    End Sub
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    'Empêcher touche PageUp/PageDown/End/Origine
    If Flag = "1" Then
        If KeyCode = vbKeyPageUp Or KeyCode = vbKeyPageDown Or KeyCode = vbKeyEnd Or KeyCode = vbKeyHome Or KeyCode = vbKeyUp Or _
        KeyCode = vbKeyDown Then
            KeyCode = 0
        End If
    End If
    End Sub
    et ça ne me bloque toujours pas les touches?

    SI je défini mon Flag comme un Entier "integer" je devrai pouvoir ecrire ensuite "If flag = 1" donc.. or ça ne marche aps non plus...
    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
     
    Private Sub Form_Load()
    Dim Flag As Integer
    Flag = 1
    End Sub
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    'Empêcher touche PageUp/PageDown/End/Origine
    If Flag = 1 Then
        If KeyCode = vbKeyPageUp Or KeyCode = vbKeyPageDown Or KeyCode = vbKeyEnd Or KeyCode = vbKeyHome Or KeyCode = vbKeyUp Or _
        KeyCode = vbKeyDown Then
            KeyCode = 0
        End If
    End If
    End Sub

  4. #4
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    C'est bien d'essayer d'utiliser mon code
    Voici quelques explications:

    -1) Déclarer la variable "Flag" dans un Module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Déclaration variable 'Flag' servant de marqueur dans formulaire
    Public Flag As Byte
    -2) Ensuite en fonction de l'événement sur lequel tu veux "verrouiller" ces touches, tu passe simplement ta variable "Flag" à 1 (remettre à 0 pour réactiver touches):
    -3) Pense à mettre "Aperçu des touches = Oui".......sinon cela n'a aucun effet

    Bonne continuation

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/02/2014, 11h56
  2. [gtk/gdk] Codes des touches clavier
    Par drKzs dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 27/02/2008, 12h21
  3. [SDL] Gestion des touches claviers problématique
    Par Invité4 dans le forum SDL
    Réponses: 3
    Dernier message: 13/10/2006, 21h15
  4. Gestion des touches clavier
    Par bourinator dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 18/06/2006, 16h19
  5. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 14h57

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