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 :

L'utilisation de DefaultFormatSettings [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 680
    Points
    680
    Par défaut L'utilisation de DefaultFormatSettings
    Bonjour à tous

    Je veux utiliser ce code pour changer les variables locales du panneau de configuration,
    mais rien ne change.
    dois-je oublier quelques choses?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      sysutils.DefaultFormatSettings.DateSeparator:='-';
      sysutils.DefaultFormatSettings.DecimalSeparator:='.';
    end;
    Laz: 1.6

  2. #2
    Membre confirmé

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Points : 625
    Points
    625
    Par défaut
    A ma connaissance, l'utilisation de DefaultFormatSettings ne permet en aucun cas la modification des paramètres locaux concernés au sein du système (i.e. de Windows).

    Pour cela, il faut passer par le panneau de configuration ou bien utiliser l'API Windows SetLocaleInfo: cf. https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

    A noter que cela n'est pas recommandé parce que la modification concerne alors toutes les applications (un envoi généralisé du message WM_SETTINGCHANGE est d'ailleurs alors souhaitable).

  3. #3
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 680
    Points
    680
    Par défaut
    @FChrisF

    A ma connaissance, l'utilisation de DefaultFormatSettings ne permet en aucun cas la modification des paramètres locaux concernés au sein du système (i.e. de Windows).
    Enfin c'est ce que j'ai constaté, DefaultFormatSettings est en lecture seule.

    Pour cela, il faut passer par le panneau de configuration.
    je laisse ce choix à l'utilisateur.

    A noter que cela n'est pas recommandé parce que la modification concerne alors toutes les applications (un envoi généralisé du message WM_SETTINGCHANGE est d'ailleurs alors souhaitable).
    J'ai donc adapté mon application à l'environnement système.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TFArchPmt.FormCreate(Sender: TObject);
    var  d1:TdateTime;
        sty,sd:string;
        y,m,d:Word;
    begin
        d1:=Now;
        DecodeDate(d1,y,m,d);
        sd:=DefaultFormatSettings.DateSeparator;
        sty:='01'+sd+'01'+sd+inttostr(y);
        DateTimePicker1.Date:=Strtodate(sty) ;
        DateTimePicker2.Date:=Date ;
    end;
    merci beaucoup.

  4. #4
    Membre confirmé

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Points : 625
    Points
    625
    Par défaut
    Je me trompe, ou bien vous souhaitez simplement obtenir le 1er janvier de l'année en cours (mais le code posté n'est peut-être qu'un extrait d'un code plus important).

    Vous pourriez utiliser la fonction EncodeDate dans ce cas, ainsi que la fonction YearOf de DateUTils ou bien la fonction CurrentYear de SysUtils:

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       DateTimePicker1.Date := EncodeDate(CurrentYear(), 1, 1);

  5. #5
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 680
    Points
    680
    Par défaut
    Bonjour

    effectivement la date de début est 01-01 de l'année en cours.

    merci pour la fonction: EncodeDate(CurrentYear(), 1, 1) qui facilite bien la tâche.

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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