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

Lazarus Pascal Discussion :

Formatage de date dans TDateEdit [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut Formatage de date dans TDateEdit
    Bonjour

    Quand je clique sur une date dans calendrier dans un TDateEdit la date récupérée est du type 2-4-15

    Y-a-t' il une propriété ou une méthode pour reformater cette date genre 02/04/2015 dans le composant ?

    NB pour Info je suis sous Linux avec Lazarus 1.2.6

    Nom : cal_format_date.jpg
Affichages : 420
Taille : 49,0 Ko

    Bien cordialement

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 131
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 131
    Par défaut
    Yop !
    Citation Envoyé par joreveur Voir le message
    Y-a-t' il une propriété ou une méthode pour reformater cette date genre 02/04/2015 dans le composant ?
    Propriété DateOrder et tu choisis doDMY.

    Attention, l'éditeur passera en mode TMaskEdit, mais au moins l'affichage est formaté comme tu veux.

  3. #3
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Salut

    (sur Debian moi aussi, problème reproduit)
    Après lecture des sources et un peu de tâtonnement, on trouve une solution (bricolée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      DefaultFormatSettings.DateSeparator := '/';
      DateEdit1.Clear;
      DateEdit1.DateOrder := doDMY; // faisable avec l'inspecteur d'objet
    Le composant est mal foutu... il impose un choix limité de format de date (je n'ai regardé que cela) via un type énuméré.
    L'appel à clear permet de mettre à jour le format immédiatement.

    La variable DefaultFormatSettings.DateSeparator prend la valeur '-' alors que les paramètres système semble indiquer '/', le problème se tient dans l'unité SysUtils et plus précisément dans sysinth.inc, les valeurs par défaut sont en dur et ne semblent pas reprises depuis les paramètres système, c'est ballot. Pour contourner le problème, il suffit donc de forcer la valeur au démarrage du programme.

    Sujet à approfondir...

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  4. #4
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    re-salut

    Il existe une fonction GetFormatSettings qui permet de reprendre les paramètre système locaux mais elle est disponibles uniquement dans le monde Windows (peut mieux faire...).

    Donc si mon analyse est juste, la bidouille que j'ai proposée demeure une solution acceptable en l'état.

    Si quelqu'un connaît mieux, ce serait bien de partager.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut
    Bonjour, Jipété

    Citation Envoyé par Jipété Voir le message
    Yop !

    Propriété DateOrder et tu choisis doDMY.

    Attention, l'éditeur passera en mode TMaskEdit, mais au moins l'affichage est formaté comme tu veux.
    effectivement ça formate en prévisualisation mais pas à l’exécution.


    Bonjour e-ric
    Citation Envoyé par e-ric Voir le message
    Salut

    (sur Debian moi aussi, problème reproduit)
    Après lecture des sources et un peu de tâtonnement, on trouve une solution (bricolée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      DefaultFormatSettings.DateSeparator := '/';
      DateEdit1.Clear;
      DateEdit1.DateOrder := doDMY; // faisable avec l'inspecteur d'objet
    Le composant est mal foutu... il impose un choix limité de format de date (je n'ai regardé que cela) via un type énuméré.
    L'appel à clear permet de mettre à jour le format immédiatement.

    La variable DefaultFormatSettings.DateSeparator prend la valeur '-' alors que les paramètres système semble indiquer '/', le problème se tient dans l'unité SysUtils et plus précisément dans sysinth.inc, les valeurs par défaut sont en dur et ne semblent pas reprises depuis les paramètres système, c'est ballot. Pour contourner le problème, il suffit donc de forcer la valeur au démarrage du programme.

    Sujet à approfondir...

    oui effectivement la méthode fonctionne parfaitement.
    j'avais eu un problème un peu similaire en freepascal http://www.developpez.net/forums/sho...errerid=348736 ( Est-ce qu'il y a une similitude ?) et on m'avait conseillé de me mettre une unité clocale pour Linux. Mais en Lazarus cette méthode ne semble pas fonctionner.

    Je ne marque pas le sujet résolu (bien que pour moi, il le soit) pour que ce problème puisse être réglé.

    Merci à chacun pour sa contribution.

    Bien à vous

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 131
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 131
    Par défaut
    Citation Envoyé par joreveur Voir le message
    Bonjour, Jipété


    effectivement ça formate en prévisualisation mais pas à l’exécution.


    À l'exécution chez moi (Debian 32 bits et Lazarus 1.0.10) :

    Nom : 02042015.png
Affichages : 547
Taille : 4,0 Ko

    Bon, le séparateur n'est pas le "/" comme tu le demandes dans ton premier post, mais est-ce bien grave ?

  7. #7
    Membre expérimenté

    Homme Profil pro
    Diverses
    Inscrit en
    Février 2014
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Diverses

    Informations forums :
    Inscription : Février 2014
    Messages : 122
    Par défaut
    Un peu au hasard et sans essayer par manque de temps. Avez-vous essayé de charger l'unité clocale dans votre programme (fichier lpr) ?

    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
    program Project1;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}
      clocale, 
      {$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}
     
      {$ENDIF}
      Interfaces, // this includes the LCL widgetset
      Forms, Unit1
      { you can add units after this };

  8. #8
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 131
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 131
    Par défaut
    Citation Envoyé par yamer Voir le message
    Un peu au hasard et sans essayer par manque de temps. Avez-vous essayé de charger l'unité clocale dans votre programme (fichier lpr) ?
    Bingo !

    Je ne mets pas de copie d'écran, mais les "/" sont bien là.

  9. #9
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut
    Bonjour Jipété et Merci de tes réponses
    Citation Envoyé par Jipété Voir le message


    À l'exécution chez moi (Debian 32 bits et Lazarus 1.0.10) :

    Nom : 02042015.png
Affichages : 547
Taille : 4,0 Ko

    Bon, le séparateur n'est pas le "/" comme tu le demandes dans ton premier post, mais est-ce bien grave ?
    Quand le demandeur souhaite un type d'affichage, il faut s'en tenir à sa demande sauf à prouver que c'est infaisable...
    Mais c'est vrai que dans l'absolu, ce n'était pas bien grave en terme de fonctionnalité.




    Bonjour yamer et merci pour cette solution qui fonctionne.

    Citation Envoyé par yamer Voir le message
    Un peu au hasard et sans essayer par manque de temps. Avez-vous essayé de charger l'unité clocale dans votre programme (fichier lpr) ?

    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
    program Project1;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}
      clocale, 
      {$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}
     
      {$ENDIF}
      Interfaces, // this includes the LCL widgetset
      Forms, Unit1
      { you can add units after this };
    J'avais bien essayé de mettre cette unité dans unit1.pas mais j'avais du mal implémenté (oublié un {ENDIF} ...) et donc je pensais que ça ne fonctionnais pas d'où ce billet ; ça simplifiera le code en conséquence et cela sera plus propre


    Merci à chacun et bonne continuation.

    Cordialement

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

Discussions similaires

  1. formatage de dates récupérées dans un fichier.
    Par Yepazix dans le forum Langage
    Réponses: 10
    Dernier message: 03/08/2014, 18h52
  2. Soucis formatage de date dans datagridview
    Par ColDay dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/05/2009, 09h19
  3. Formatage de date dans un BoundField
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/06/2008, 12h22
  4. Problème de formatage des dates et heure dans une mshflexgrid
    Par Virtualité dans le forum VB 6 et antérieur
    Réponses: 20
    Dernier message: 27/11/2007, 14h07
  5. Formatage de la date dans les fichiers logs
    Par yann_p dans le forum Administration système
    Réponses: 2
    Dernier message: 04/07/2006, 10h52

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