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

 Delphi Discussion :

comment faire pour limiter la saisie utilisateur


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 18
    Points
    18
    Par défaut comment faire pour limiter la saisie utilisateur
    bonjour à tous
    comment faire pour limiter la saisie
    1.à 3chiffres entiers
    2.à une valeur décimale à 2 chiffres après la virgule
    comment comment faire pour permettreà l'utilisateur de pouvoir effacer tous ces qu'il a ecrit

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Tu peux utiliser le boucle repeter ... jusqu'a (repeat ... until)
    Il faut que l'utilisateur saisie son chiffre aprés le programme lire ce chiffre et verifie quelques conditions
    Utilise un type booleen

  3. #3
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 374
    Points : 3 150
    Points
    3 150
    Par défaut Comment faire pour limiter la saisie d'un utilisateur
    Bonjour,

    il faut utiliser l'évènement OnKeyPress du TEdit en y affectant l'une de ces 2 fonctions dont tu peux t'inspirer. La première permet la saisie de nombres réels et la seconde d'entier.


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    procedure TF_Parametre.MasqueSaisie(Sender: TObject; var Key: Char);
    { Filtre sur la saisie d'une valeur numérique dans un TEdit }
    var
     texte         : String;
    begin
       With Sender As  TEdit  Do
          Begin
             texte:=text;
             { La saisie d'une lettre n'est pas acceptée :  }
             if not (Key in ['0'..'9',',','.','-',#8,#13]) then Key := #15;
             {  Interdiction de la saisie de plusieurs virgules successives :
             en outre, la saisie d'un point est remplacée par une virgule :     }
             if (Key = ',') or (Key = '.') then
                if (Pos(',',Texte) > 0) or (Pos('.',Texte) > 0) then
                   Key := #15
                else
                   Key := DecimalSeparator;
             { un point (une virgule) sera toujours précédé de 0 :    }
             if (Key = ',') or (Key = '.') then
             if length(texte)<1  then
                Begin
                   text:='0,';
                   selstart:=2;
                   Key :=#0;
                end;
             if (Key = ',') or (Key = '.') then
             if ((length(texte)<2) And (copy(texte,1,1)='-'))  then
                Begin
                   text:='-0,';
                   selstart:=3;
                   Key :=#0;
                end;
             {  pas d'espace :     }
             if Key = #32 then Key := #15;
             {  ni de tiret :   }
             if Key = '-' then if ((length(Texte) > 0)And(SelStart >1)) then Key := #15;
             if Key <> #0 then inherited KeyPress(Key);
          End ;
       { Suppression de certaines touches qui sonnent dans le Edit des champs }
       If Ord(Key)=13 Then Key := Chr(0) ;
    end;
    { ======================================================================= }
    procedure TF_Parametre.MasqueSaisieInt(Sender: TObject; var Key: Char);
    { Saisie d'une valeur numérique entiére positive }
    var
     texte         : String;
    begin
       With Sender As  TEdit  Do
          Begin
             texte:=text;
             { La saisie d'une lettre n'est pas acceptée :  }
             if not (Key in ['0'..'9',#8,#13]) then Key := #15;
             {  pas d'espace :     }
             if Key = #32 then Key := #15;
             {  ni de tiret :   }
             if Key = '-' then if (length(Texte) > 0) then Key := #15;
             { Pas de 0 en première position:    }
             if (Key = '0') then
             if length(texte)<1  then  Key := #15;
     
             if Key <> #0 then inherited KeyPress(Key);
          End ;
       { Suppression de certaines touches qui sonnent dans le Edit des champs }
        If Ord(Key)=13 Then Key := Chr(0) ;
    end;
    { ======================================================================= }
    Il faudrait que tu ajoutes la limitation du nombre de caractères saisis.

    pour effacer tu met un bouton avec le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       Edit1.text := '' ;
    A+

    Charly

Discussions similaires

  1. [XL-2010] Comment faire pour controler une saisie
    Par pierrot10 dans le forum Excel
    Réponses: 1
    Dernier message: 11/03/2011, 10h13
  2. Réponses: 1
    Dernier message: 25/01/2008, 14h44
  3. [VB6] Comment faire pour limiter l'utilisation d'une application
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/06/2006, 08h43
  4. [VB6] Comment faire pour annuler la saisie dans un combobox ??
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 14/06/2006, 15h16

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