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 :

Delphi TDateTimePicker à null


Sujet :

Delphi

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 75
    Points
    75
    Par défaut Delphi TDateTimePicker à null
    Bonjour

    Sur ma forme, j'ai un TDateTimePicker et quand la valeur de la date est zéro il retourne comme date le 1899/12/30.
    Parce que le nombre zéro équivaut à cette date.

    J'aimerais savoir comment on fait pour qu'il n'affiche rien '____/__/__'

    Merci

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par cchasse98 Voir le message
    J'aimerais savoir comment on fait pour qu'il n'affiche rien '____/__/__'
    Il faut ruser un peu...

    Si la propriété Time du composant de classe TDateTimePicker est différent de '00:00:00' , on peut écrire dans le gestionnaire d'événement OnChange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
      if Trunc(DateTimePicker1.DateTime) = 0 then
        DateTimePicker1.Format := '    /  /  '
      else
        DateTimePicker1.Format := 'yyyy/MM/dd';
    end;
    Pour éviter des effets de bord ultérieurs, n'oubliez pas d'en tenir compte dans les autres portions de code où on contrôle si la valeur de la propriété DateTime est nulle ou non...

    Plus proprement, on peut écrire son propre composant descendant de TDateTimePicker avec les propriétés et fonctions adéquates pour gérer cette fonctionnalité...
    Philippe.

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Et sinon, moi j'utilise la case à cocher (propriété Checked), qui me permet de savoir s'il faut prendre en compte la valeur du TDateTimePicker ou pas.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    J'avais eu le même problème il y a longtemps et, pour autant que mes souvenirs ne me trompent pas, j'avais utilisé les composants orpheus qui réglaient ce problème.

    http://sourceforge.net/projects/tporpheus/

    à vérifier ...

  5. #5
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 75
    Points
    75
    Par défaut Delphi TDateTimePicker à null
    Bonjour,

    La condition que tu mentionnes, je l'ai essayé mais j'ai l'erreur suivante 'Undeclared identifier Format'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (qentete.fieldByName('Date_Ferme').Asdatetime = 0) then
             DTdateferm.Format := ('    /  /  ')
         else
             DTdateferm.Datetime := qentete.fieldByName('Date_Ferme').Asdatetime;
    Merci

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    sans doute à cause des parenthèses en trop ??

  7. #7
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 75
    Points
    75
    Par défaut Delphi TDateTimePicker à null
    Désolé j'ai fait une erreur de frappe, il n'y à pas de parenthèse et j'ai même essayé avec DateFormat

  8. #8
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 75
    Points
    75
    Par défaut Delphi TDateTimePicker à null
    Voici la solution..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With DTdateferm do
         begin
              if  (qentete.fieldByName('Date_Ferme').Asdatetime = 0) then
                  DateTime_SetFormat(Handle, PChar('    /    /    '))
              else
                  DTdateferm.Datetime := qentete.fieldByName('Date_Ferme').Asdatetime;
         end;

  9. #9
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 75
    Points
    75
    Par défaut Delphi TDateTimePicker à null
    Désolé, il manque une ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Use' CommCtrl'
    With DTdateferm do
         begin
              if  (qentete.fieldByName('Date_Ferme').Asdatetime = 0) then
                  DateTime_SetFormat(Handle, PChar('    /    /    '))
              else begin
                  DateTime_SetFormat(Handle, PChar('dd/MM/yyyy'));
                  DTdateferm.Datetime := qentete.fieldByName('Date_Ferme').Asdatetime;
              end;
         end;

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 19/01/2009, 08h21
  2. Delphi 7 ne reconnait pas la valeur Null
    Par crackosd dans le forum Langage
    Réponses: 4
    Dernier message: 17/01/2008, 13h33
  3. Delphi 7 et DOA : valeurs nulles
    Par delphim dans le forum Bases de données
    Réponses: 4
    Dernier message: 16/11/2004, 09h18
  4. [delphi 7 / DOA] valeur null dans setvariable
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/11/2004, 10h14
  5. [Delphi & DBExpress ] Mettre un champs date à null
    Par falcon dans le forum Bases de données
    Réponses: 10
    Dernier message: 03/11/2004, 08h21

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