Ce sujet est résolu.
1 | |||
Auteur | Messages | ||
---|---|---|---|
Foromus | #1 Posté le 3/8/2011 à 19:47:00 | ||
Bonjour, Même si Gambas est un peu en veille en ce moment, j'ai voulu faire un petit ajout sur un projet. Dans un formulaire, je rentre un prénom, j'ai utilisé le code suivant : Public Sub txtPrenom_Change() Prenom = txtPrenom.Text If Len(Prenom) > 2 Then txlSugere.Text = "Tapez ''Return'' pour valider" End Public Sub txtPrenom_KeyPress() If Key.RETURN = Key.Code Or Key.Enter = Key.Code Then If Prenom = "" Then Erreur = True If Prenom <> "" Then VerifNom If Erreur = False And Prenom <> "" Then ValiderSaisie Endif If Erreur = True Then txtPrenom.Text = "" Prenom = "" Erreur = False txtPrenom.SetFocus Endif End Et ça fonctionne très bien, je rentre mon prénom, je valide par Return. Et comme j'aime bien me compliquer le vie par moment, j'ai dit que j'allais mettre un mot de passe pour démarrer mon projet - histoire de faire pro - ce qui est d'ailleurs ridicule, puisque je ne sais même pas comment crypter et cacher un mot de passe... Passons, j'ai donc pris un code qui marche, le même que ci-dessus en fait, et que voici : Public Sub txtPass_Change() Mot = txtPass.Text End Public Sub txtPass_KeyPress() If Key.RETURN = Key.Code Or Key.Enter = Key.Code Then 'Vérification 'Traitement Endif End Et là, bizarre, ça ne marche plus... A l'exécution, j'ai le code erreur suivant : No keyboard event data dans formulaire ... ligne ... Dans un premier temps, je me suis dit ""qu'il"" n'aimait pas la place de classe au démarrage, qu'à cela ne tienne, j'ai créé un module de démarrage qui m'appelle immédiatement le formulaire concerné, pas de chance, c'est la même chose, rien n'y fait, il ne veut pas entendre parler d'événement clavier à ce stade, alors qu'il l'accepte un peu plus loin... Y-aurait-il un gros truc que ma vue déficiente n'aurait point remarqué ?... Merci de votre attention ! | |||
Prokopy | #2 Posté le 4/8/2011 à 13:18:00 | ||
Kinder Pingui | Salut Foromus, Est-ce que tu peux dire précisement à quelle ligne il y l'erreur s'il te plaît ? Parce que « No keyboard event data dans formulaire ... ligne ... » ça n'aide pas beaucoup ... La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||
Foromus | #3 Posté le 4/8/2011 à 13:30:00 | ||
Bonjour, Oui, je comprends, mais "formulaire", c'est le nom du formulaire, "ligne", c'est le numéro de la ligne, et comme les numéros n'apparaissent pas ici, je ne l'ai pas mis. En clair, il s'agit de la première ligne (où que je la place, qui commence par "If KeyReturn....", en l'occurrence, celle-ci : If Key.RETURN = Key.Code Or Key.Enter = Key.Code Then Et c'est exactement sur cette ligne que j'ai, au lancement, en surbrillance pendant une ou deux secondes, le message d'erreur : No keyboard event data dans formulaire ... ligne ... En clair, où que je place cette ligne (If Key.RETURN = Key.Code Or Key.Enter = Key.Code Then) dans mon formulaire, voire dans le module de départ, elle est refusée. J'ai tenté "tout recompiler", à tout hasard, aucun résultat. Encore un truc qui me passe au-dessus de la tête... | |||
Prokopy | #4 Posté le 4/8/2011 à 14:01:00 | ||
Kinder Pingui | As-tu essayé dans l'autre sens ? (ce qui est plus logique) :
Note aussi que cette ligne doit uniquement se trouver dans un gestionnaire d'évènement clavier (Dans un des txtPrenom_Key*, KeyPress par exemple). La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||
Foromus | #5 Posté le 4/8/2011 à 20:00:00 | ||
Key.Code = Key.Return ou encore Key.Return = Key.Code ça ne change pas grand chose, même si la première semble plus logique, effectivement. Par ailleurs, la procédure : Public Sub txtPass_KeyPress() ........ me semble bien attendre un événement clavier... Pour la "récupération", j'ai placé avant une "Change". Je n'y comprends vraiment rien... | |||
Prokopy | #6 Posté le 5/8/2011 à 12:23:00 | ||
Kinder Pingui | Là j'avoue je ne vois pas ... Par contre pour valider ton mot de passe je pense qu'il serait mieux de mettre un bouton OK plutôt que de chercher KeyPress sur ton textBox. Tu peux mettre la propriété Defalut du bouton à true pour que la touche entrée l'active si tu veux. ( http://gambasdoc.org/help/comp/gb.qt4/button/default?fr&v3 ) La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||
linuxos | #7 Posté le 5/8/2011 à 14:37:00 | ||
Un peu de sel, de poivre et la crevette sera... | Bonjour Foromus, Peux tu préciser quel type de controle tu utilises pour saisir ton mot de passe: TextBox je suppose ? Je n'ai aucun problème pour gérer un evenement clavier, genre 'touche RETURN ou ENTREE' sur un TextBox. Exemple: considerons le TexBox50 permettant la saisie du mot de passe:
Voila Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||
Foromus | #8 Posté le 7/8/2011 à 08:10:00 | ||
Bonjour à tous en général, et aux vacanciers de retour en particulier, Comme le laisse supposer mon code, c'est bien d'une textbox dont il s'agit (je l'ai même effacée pour en remettre une autre toute neuve). Effectivement, c'est toujours le même code qui s'impose, il n'y a pas 36 façons d'opérer. Mon souci, c'est que ce même code (au nom de la textbox près), marche bien dans un formulaire, et pas dans l'autre ! Pourquoi ce message d'erreur (refus de l'événement Key...) dans cette procédure, alors que c'est accepté dans l'autre ?.. Bref, le truc idiot, quoi.... | |||
Jack | #9 Posté le 7/8/2011 à 08:34:00 | ||
Y'aurait pas un tag par hasard ? Pour un code démocratique nationalisons Gambas. | |||
Foromus | #10 Posté le 7/8/2011 à 09:39:00 | ||
Possible, vu que je ne sais pas ce que c'est... A part du gribouillis sur une surface quelconque que certains illuminés appellent de """ l'art """" | |||
Jack | #11 Posté le 7/8/2011 à 11:16:00 | ||
regarde ce que tu as dans la propriété "Group" de ta textbox. Il ne doit rien y avoir. Pour un code démocratique nationalisons Gambas. | |||
Foromus | #12 Posté le 9/8/2011 à 21:03:00 | ||
En désespoir de cause, j'ai remis une seconde fois une textbox toute neuve ! Et ça à marché..... Je n'y ai rien compris.... | |||
1 |