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

Composants VCL Delphi Discussion :

EditText de type date


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 39
    Par défaut EditText de type date
    comment faire pour configurer un EditText pour qu'il n'accepte que les dates et en ajoutant automatiquement le séparateur de mon choix - ou /

  2. #2
    Membre éclairé Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Par défaut Bonjour,
    utilise le composant TMaskEdit

    pour avoir un truc du genre :

    __/__/____

  3. #3
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Et même avec ça, il faudra tester la cohérence de la saisie
    Pour ça, regarde du côté de IsValidDate

  4. #4
    Membre éclairé Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Par défaut
    Citation Envoyé par OutOfRange Voir le message
    Et même avec ça, il faudra tester la cohérence de la saisie
    Pour ça, regarde du côté de IsValidDate
    oh que oui

  5. #5
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Encore mieux
    Plutôt que tester avec IsValidDate une fois la saisie terminée, tu veux bloquer la frappe en fonction de la position du curseur dans le mask
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
      case MaskEdit1.SelStart of
      0:   if Not (Key in ['0'..'3',#8,#32,#37,#39]) then Key := #0;
            //autorise 0,1,2,3,suppr,retour et flèches droite et gauche en position 0
      1,4: if Not (Key in ['0'..'9',#8,#32,#37,#39]) then Key := #0;
      3:   if Not (Key in ['0'..'1',#8,#32,#37,#39]) then Key := #0;
      //etc.
      end;
    end;
    Dans mon exemple, la propriété EditMask a la valeur '!99/99/9999;1;_'
    A toi de compléter pour peaufiner les filtres, par exemple en n'autorisant que 0,1,2 en position 4 si on a tapé 1 en position 3 (le mois 13 n'existe pas )
    Etapes suivantes : mois à 30 ou 31 jours, années bissextiles

    Rendons à César-BuzzLeclaire ce qui lui appartient
    Le blocage du KeyPress je l'ai trouvé ici
    http://www.developpez.net/forums/d69...ne-stringgrid/

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 022
    Par défaut
    OutOfRange il me semble que ta procédure n'est pas correcte.
    Je me trompe peut - être mais elle semble autoriser une saisie du genre
    "32/04/2009" !

  7. #7
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Bonjour

    Pourquoi ne pas tout simplement utiliser un DateTimepicker !! cela evite pas mal de probleme.
    En plus par simple touche de déplacement on peut chosir la date que l'on souhaite ou alors la fleche pour afficher le calandar...

    Bye.

  8. #8
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Citation Envoyé par popo
    OutOfRange il me semble que ta procédure n'est pas correcte.
    Je me trompe peut - être mais elle semble autoriser une saisie du genre
    "32/04/2009" !
    OK popo , c'était juste une piste de réflexion, comme je l'ai précisé dans mon post, à DzBadBoy de peaufiner les tests pour finalement n'autoriser que des dates valides

  9. #9
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Salut;

    je crois qu'une fonction personnalisée de type IsDate a tout le mérite d'être coder. donc, simple Result si DateValide sinon gestion d'une exception...

    Malheureseument je suis trop débordé pour réflèchir à ça, c'est juste une idée...

    Bonne chance.

Discussions similaires

  1. Critères sur champ de type date
    Par blasco dans le forum Access
    Réponses: 2
    Dernier message: 29/10/2004, 10h48
  2. Réponses: 3
    Dernier message: 08/10/2004, 01h12
  3. BC6 inserer un enreg de type date/heure dans Access2003
    Par o_live dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/06/2004, 12h13
  4. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 17h57
  5. utilisation du type DATE d'interbase
    Par dibak dans le forum InterBase
    Réponses: 4
    Dernier message: 05/01/2004, 16h03

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