tmcuh
Messages postés458Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention18 avril 2009
-
11 avril 2005 à 10:52
jee0404
Messages postés131Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention27 octobre 2009
-
20 févr. 2007 à 16:38
Bonjour je suis débutant en fox et j'aurais aimé connaitre la technique
pour rendre une textbox uniquement numérique et si possible pour une
autre en format date (masque possible?).
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 3 mai 2005 à 19:37
Calenge,
ta question recouvre un problème de conception de ta saisie: si tous les utilisateurs doivent saisir dans ce textbox une chaine de caractère commençant toujours par "ABCD", alors cette sous-chaine "ABCD" ne doit pas être considérée comme une varaible, donc ne doit pas figurer dans la zone de saisie, ni être stockée dans les données...
Le "pas très joli" est en fait le plus cohérent, et le plus économique en matière de data
jee0404
Messages postés131Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention27 octobre 2009 19 févr. 2007 à 19:18
excuse moi ,
a propos de texbox numéric , j'ai un problème de saisie avec les textbox numérique. quand par exemple ne mets le inputmask a = "99,999.99" et que l'utilisateur rendre 23 dans un textbox qui est initialisé a 0 . et le textbox rentre dans la variable CODE2 la valeur 230 au lieu de marqué 23 comment je peut faire pour évité ce problème ?
voila un exemple de code de texbox
tmcuh
Messages postés458Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention18 avril 2009 20 févr. 2007 à 09:12
Je doute que le caractère "," et le "." font bon ménage...
De plus tu te complique la vie. Tu peux récupérer la valeur de ton textbox lors de l'évènement "valid", qui va valider ou invalider la valeur contenu dans le textbox. Et ainsi ne pas passer par des autres évènements qui récupère et reécrase derrière... qui n'est jamais très sain dans le code.
DEFINE CLASS CLSTXTBOX AS TEXTBOX
....
PROCEDURE VALID
STORE this.VALUE TO CODE2
ENDPROC
Si tu veux pouvoir entrer des nombres à virgules, met plutôt un masque comme "999 999.99"
jee0404
Messages postés131Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention27 octobre 2009 20 févr. 2007 à 15:15
merci pour ta réponse, j'apprécie, mais ce que je voulais savoir c,est qu'il apparaît au départ dans le textbox le chiffre "0.00" et quand je met le nombre 25 , il fait "25 0.00" et quand je fait pgdn ou PGUP , garde le 0 ,donc ca fait 250 , mais quand je pése sur enter, il écrase le 0 et ca fait 25. Je voudrais savoir comment je pourrais caller la procédure pour qu'Il fasse tout le temps comme le ENTER ?
PS pour sélectionner le contenu j'y ais pensé mais mes boss ne veut pas de même
tmcuh
Messages postés458Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention18 avril 2009 20 févr. 2007 à 15:31
Il y a un problème de sélection. En fait ton champs à une position imaginons 10 caractères, ton masque lui en possède 6 (par exemple), ce qu'il fait qu'il reste 4 caractères vide. Lorsque tu va arriver dans ce controle, il va commencer depuis le début ce qui pourrait se représenter par " 0.00", lorsque tu va entrer une valeur tu va te retrouver au début du controle --> "25 0.00", tu as donc le chiffre qui passe à 250.
Je te conseil de passer par un selectonentry = .T. sur ton controle; ainsi dès qu'on arrive dedans, il va selectionner pour écraser la valeur. Tu aura donc toujours la valeur entrer et non plus la valeur de départ qui t'ennuie tant.
C'est une façon élégante je trouve. Maintenant si tu ne peux pas passer par un selectonentry, dans ce cas tu dois tester en entrant dans ta textbox (event gotfocus) si la valeur dedans est vide (if(empty(val(this.value)) alors il va mettre la valeur à blanc ; this.value = "" .... ton zéro disparait.
Tu devra procédé bien sur à une opération inverse si tu sors de la cellule sans l'avoir remplie (event lostfocus ... avec this.value = 0.0)
Le resultat est moins beau, à moins de le travailler un peu.
jee0404
Messages postés131Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention27 octobre 2009 20 févr. 2007 à 16:21
merci pour l'attention , c'est une bonne idée de cleaner le contenue quand il prend son focus , mais si j'utilise this.value = "" , ca rend le textbox comme une string et non comme un numéric .
La raison pourquoi il ne veut pas utiliser le selectonentry c'est parce qu'il le perd quand on click dedans et ca peut fausser le résultat . j'ai essaier de le refaire selectionner avec l'évenement click , mais sans résultat apparant.
tu connaitrait tu un moyen de voir s'il le zéros des entiers au départ n'a pas été touché ? et de pouvoir l'otter apres la saisie ?