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 :

comment bloquer la saisie d'un mois dans un datetimepicker ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut comment bloquer la saisie d'un mois dans un datetimepicker ?
    Bonjour à tous

    j'utilise actuellement le composant datetimepicker et je me pose une question toute simple :

    Peut-on empêcher la saisie d'une date d'un datetimepicker si elle dépasse un intervalle de mois du choisis par mes soins du style :

    'choisir une date entre le mois d'octobre à décembre inclus seulement' ?

    Toute autre date non valide se verra mentionnée par un showmessage lorsqu'on voudra faire défiler les autres mois du composant datetimepicker !


    merci de me donner des pistes car c'est une chose qui est à mon sens pratique et ergonomique.

    [/quote]

  2. #2
    Débutant

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Points : 120
    Points
    120
    Par défaut
    Il suffit peut etre simplement de tester la valeur choisie au moment d'un clic sur un bouton valider ... ou lorsque le DateTimePicker perd son focus ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Si (DTP.Date < DateBasse) or (DTP.Date > DateHaute) then
       Message('Pabossa !!!');

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Dans le onchange et le oncloseup du datetimepicker tu mets par exemple :

    Onchange : Pour que ca vérifie lors de la saisie manuelle
    Oncloseup : Pour que ca vérifie lors de la sélection avec le calendier du datetimepicker.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ((Sender as TDateTimePicker).Date < Now - 30) or
        ((Sender as TDateTimePicker).Date > now + 30) then
        (Sender as TDateTimePicker).Date := now;
    Cet exemple met la date du jour si la valeur sélectionnée n'est pas entre date du jour - 30 jours et date du jour + 30 jours
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par Malatar
    Dans le onchange et le oncloseup du datetimepicker tu mets par exemple :...
    un conseil : n'utilise pas l'événement OnCloseUp car il n'est pas géré de la même manière par le clavier et la souris =>
    lors de la l'utilisation du clavier il me semble que cet événément n'est pas généré alors qu'il l'est avec la souris.

    J'ai posté un problème à ce sujet et je l'ai résolu grâce à l'événement OnExit pour autant que je me rappelle.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut suite
    Ok je vais tester cela après le bureau, je vous dis cela demain.

    merci de vos conseils avisés

    bertrand

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Magnus
    Citation Envoyé par Malatar
    Dans le onchange et le oncloseup du datetimepicker tu mets par exemple :...
    un conseil : n'utilise pas l'événement OnCloseUp car il n'est pas géré de la même manière par le clavier et la souris =>
    lors de la l'utilisation du clavier il me semble que cet événément n'est pas généré alors qu'il l'est avec la souris.

    J'ai posté un problème à ce sujet et je l'ai résolu grâce à l'événement OnExit pour autant que je me rappelle.
    C'est pour ca que je lui dit de mettre aussi dans le onchange la meme fonction.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    C'est pour ca que je lui dit de mettre aussi dans le onchange la meme fonction.
    Effectivement, je n'avais pas fait attention

    Mon conseil n'est donc à considérer que lorsque l'on utilise l'événement OnCloseUp SEUL.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut suite
    Le code est nickel mais subsiste une question ?

    Vous m'avez donné un code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ((Sender as TDateTimePicker).Date < Now - 30) or 
        ((Sender as TDateTimePicker).Date > now + 30) then
    Ne serait-il pas possible de remplacer le ' Now - 30 ' par Date < le mois de janvier si cela est possible ?

  9. #9
    Débutant

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Points : 120
    Points
    120
    Par défaut
    et sont tes 2 bornes .... tu mets ce que tu veux comme bornes

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut
    Le problème est qu'à cause du now, si on prend la date d'aujord'hui soit le 20/09/2005, si je fais + 30, je dépasse la limite éventuelle de fin septembre !

    en fait j'aimerai trouver les valeurs de janvier, février du datetimepicker directement !

    en tous cas merci à toi

  11. #11
    Débutant

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Points : 120
    Points
    120
    Par défaut
    Heu .... le Now est pas obligatoire ..... tu peut tres bien mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( DTP.Date > 01/01/2005) and ( DTP.Date < 28/02/2005)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut
    parfait subzero, tu as répondu à ma dernière interrogation !

    merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment bloquer la saisie d'une touche dans un TEdit ?
    Par bahamut100 dans le forum Débuter
    Réponses: 6
    Dernier message: 01/11/2007, 11h35
  2. Comment empêcher la saisie d'un espace dans un dbedit?
    Par pierrot67 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2007, 08h13
  3. Réponses: 2
    Dernier message: 19/03/2007, 01h47
  4. Réponses: 2
    Dernier message: 01/03/2006, 21h34
  5. Réponses: 1
    Dernier message: 28/06/2005, 11h19

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