Visual Basic : piti blem

Visual Basic : piti blem - Programmation

Marsh Posté le 10-10-2001 à 19:54:41    

[#001ce2]voila, je débute depuis hier le Visual Basic (version 3 sous win 3.1, c vraiment pour commencer):j'aimerai savoir s'i lest possible d'interdire à l'utilisateur de taper des lettres dans une case réservé pour entrer des chiffres.[#001ce2]
 
merci

Reply

Marsh Posté le 10-10-2001 à 19:54:41   

Reply

Marsh Posté le 11-10-2001 à 08:55:07    

slt,
 
Tu créé ta case texte, tu dbl clik dessus, tu arrives dans la zone de code et tu dois voir a peu près 'texte1_clik...'
En dessous tu tapes :
 
euh ... j'me rappelle plus ... ya une fonction qui permet de savoir si une touche tapée contient du texte ou des chiffres ... zut celui qui la connait l'indique ...
 
juju --==[ zé un trou de mémoire ...........


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 11-10-2001 à 09:39:20    

VB3, c'est pas mal ! Je suis resté à ce numéro là avant de passer au C (16 bits) :D .
 
Il me semble qu'il y a un évenement KeyPress associé à la zone de saisie (quelqu'elle soit dès que c'est du texte).
On récupère le code ASCII du caractère tapé au clavier avant qu'il soit affiché. On peut alors le transformer, l'absorber pour ne pas apparaître, ou le laisser passer tel quel.
 
Je ne sais plus si ASC() existe en VB3 (ou analogue) pour vérifier. Les chiffres vont de 0 à 9 (ASCII 30Hexa à 39Hexa soit 48Décimal à 57D sauf erreur).
Par contre, je ne sais plus ce qu'il faut renvoyer si on veut empêcher le caractère d'apparaître. Essayer 0 ? Il me semble qu'il y a un second argument dans le passage de paramètres. Faut tatonner.

Reply

Marsh Posté le 11-10-2001 à 10:27:50    

tu veux dire qu'il faut faire un petit prog pour analyser la chaine de caractère saisie afin de voir si elle ne contient pas de lettre?c'est pas ma lcomme idée, faut ke je vois ca.
Mais sinon,y a pas moyen de faire entendre un bip lorsque l'utlisateur appui sur une touche qui ne soit pas un chiffre?ca éviterais d'analyser la chaine saisie mais je sais pas si ce serais plu  long comme prog ! :sarcastic:

Reply

Marsh Posté le 11-10-2001 à 11:19:27    

fonction IsNumeric


---------------
Si j'etais Dieu, et ben j'croirai pas en moi..Et si j'etais moi, et ben j'me mefierai
Reply

Marsh Posté le 11-10-2001 à 11:24:32    

elle s'utilise comment cette fonction?comme ca :
If Variable IsNumeric Then
.....
End If  
????

Reply

Marsh Posté le 11-10-2001 à 11:28:00    

if isnumeric(variable) then
 
end if

Reply

Marsh Posté le 11-10-2001 à 11:30:21    

Merci les gars, je vais voir cela
je vous tiens au courant
 :hello:

Reply

Marsh Posté le 11-10-2001 à 11:31:43    

Le contrôle MaskEdit n'existe pas déjà en VB3 ? Parce qu'il permet de créer un champ input sur lequel est appliqué un masque de saisie limitant ce qui peut être saisi par l'utilisateur.

 

[edtdd]--Message édité par Guru--[/edtdd]

Reply

Marsh Posté le 11-10-2001 à 11:36:27    

je vaiqs voir ca Guru

Reply

Marsh Posté le 11-10-2001 à 11:36:27   

Reply

Marsh Posté le 11-10-2001 à 12:54:13    

Si on a un champ de nom Text1 (dans mon vieux source, je sais plus si j'avais pas un "groupe" de Text1() d'où Index)
 
Sub Text1_KeyPress (Index As Integer, KeyAscii As Integer)
// on passe ici avant d'afficher le caractère
 
    If KeyAscii < 48 or KeyAscii > 57 Then ' pas numérique
ou (si ASC() existe, j'ai un trou  :) )
    If KeyAscii < asc("0" ) or KeyAscii > asc("9" ) Then ' pas numérique
      Beep ' ou analogue, je sais plus trop
      KeyAscii = 0 ' je sais plus ce qu'il faut faire pour empêcher le caractère de passer, faudrait que je teste ce soir.
    End If
End Sub

Reply

Marsh Posté le 11-10-2001 à 14:04:56    

la fonction IsNumeric marche nikel, merci les gars
maintnenat gun autre blem :est il possible de supprimer le contenu d'une case à remplir lorsque l'utilisateur appuie sur TAB pour passer de case en case on va dire.

Reply

Marsh Posté le 11-10-2001 à 15:14:09    

Y a pas un évenement LostFocus sur la zone de saisie ?
Si oui, on passe là quand un autre contrôle "prend la main". On peut alors vider le contenu du champ.  
Sinon, faut voir la liste des évenements de la case QUE L'ON QUITTE par TAB (sinon difficile de savoir d'où l'on vient), ça doit exister.

Reply

Marsh Posté le 11-10-2001 à 15:23:42    

CARBON_14 a écrit a écrit :

Y a pas un évenement LostFocus sur la zone de saisie ?
Si oui, on passe là quand un autre contrôle "prend la main". On peut alors vider le contenu du champ.  




 
pas mieux :sol:


---------------
Si j'etais Dieu, et ben j'croirai pas en moi..Et si j'etais moi, et ben j'me mefierai
Reply

Marsh Posté le 11-10-2001 à 16:29:29    

pas de lettres possibles, pas de chiffres, pas de back space (c'est chian) mais de suppr marche. si saisie d'un caractère non autorisé : BEEP !!!!!!!
 
si la zone de saisie est txtSaisie
 
Private Sub txtSaisie_KeyPress(KeyAscii As Integer)
  If KeyAscii < 48 Or KeyAscii > 57 Then
    KeyAscii = 0
    Beep
  End If
End Sub
 
La_trique.com

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed