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 :

comment modifier les paramétres régionaux


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut comment modifier les paramétres régionaux
    Bonjour à tous,

    je voudrais savoir s'il y a un moyen pour modifier définitivement les paramètres régionaux de windows. j'ai bien essayer "decimal séparator" ça ne marche pas.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 868
    Points : 11 347
    Points
    11 347
    Billets dans le blog
    6

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut aucun résulat
    merci pour ta réponse.

    j'ai testé la commande mais il donne rien ou peut être je l'ai mal compris.

    mais ce que je cherche vraiment c'est des fonctions ou une procédure delphi qui permet de modifier les paramètres regionnaux de n'importe quelle version de windows.

  4. #4
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut
    dans une de mes appli...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Que l'on soit en mode Anglais(US) ou Français le format
    // des dates et du séparateur décimal seront conservés.
      DecimalSeparator := ',';  // 2012/11/30
      ShortDateFormat := 'dd/mm/yy'; // 2012/11/30
    le touche F1 sur ces mots clefs dans delphi pourra te donner normalement des compléments d'info dans Variables de formatage monétaire et date/heure et System Formats Number settings

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    j'ai déjà essayer
    'decimalseparator' ça marche pas

    ce que je cherche c'est la modification directe dans le panneau de configuration

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 092
    Points
    41 092
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par chekkal Voir le message
    j'ai déjà essayer
    'decimalseparator' ça marche pas
    cela fonctionne parfaitement à l'intérieur d'un programme

    exemple simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button2Click(Sender: TObject);
    var oDsep : char;
    begin
    showmessage(format('%3.2f avec le séparateur par défaut %s',[250.23,floattostr(35.2)]));
    odsep:=decimalseparator;
    decimalseparator:='.';
    showmessage(format('%3.2f avec le . %s',[250.23,floattostr(35.20)]));
    decimalseparator:=odsep;
    end;

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

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 951
    Points
    3 951
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    cela fonctionne parfaitement à l'intérieur d'un programme

    exemple simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button2Click(Sender: TObject);
    var oDsep : char;
    begin
    showmessage(format('%3.2f avec le séparateur par défaut %s',[250.23,floattostr(35.2)]));
    odsep:=decimalseparator;
    decimalseparator:='.';
    showmessage(format('%3.2f avec le . %s',[250.23,floattostr(35.20)]));
    decimalseparator:=odsep;
    end;
    Ca ne modifie le paramètre régional que dans le programme (DecimalSeparator est juste une variable globale).

  8. #8
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    Pour modifier les paramètres régionaux de Windows:
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Sauf si ton application est un utilitaire destiné à remplacer le panneau de configuration, c'est à ton application de s'adapter aux paramètres régionaux.

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 092
    Points
    41 092
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par e-ric Voir le message
    Ca ne modifie le paramètre régional que dans le programme (DecimalSeparator est juste une variable globale).
    d'accord , mais la question était "trouble" et à la solution de F@bien.fd
    je répondais au "ça marche pas" et j'ai bien indiqué
    à l'intérieur d'un programme

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Ca ne modifie le paramètre régional que dans le programme (DecimalSeparator est juste une variable globale).
    parfaitement

    si on modifie decimalseparator='.' ça influe pas du tout sur la saisie des currency, il ya même une exception qui déclenchée si on saisie avec '.' exeple:
    '1425.45'

    pour le lien donné par linkin je croit c'est un code C++, et il est pas vraiment explicite (quelle fonction utilisée et dans quelle unité il se trouve

  11. #11
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Pour modifier les paramètres régionaux de Windows:
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Sauf si ton application est un utilitaire destiné à remplacer le panneau de configuration, c'est à ton application de s'adapter aux paramètres régionaux.
    Pour moi c'est évidemment un changement à l'intérieur du programme que je considérais et non pas la machine à configurer.

    Lorsque je change les paramètres dans une application, je prends toujours soin de restituer les ancien paramètres à la fermeture de l'appli.

  12. #12
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 752
    Points : 13 336
    Points
    13 336
    Par défaut
    Et avec quels droits et privilèges cette application va-t-elle être lancée

    Sinon, obliger l'utilisateur à modifier ses réglages (voire le faire sans rien lui dire) est plus que discutable. C'est à l'application de s'adapter.

  13. #13
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Sinon, obliger l'utilisateur à modifier ses réglages (voire le faire sans rien lui dire) est plus que discutable. C'est à l'application de s'adapter.
    certes mais que j'écrive dans l'application
    DecimalSeparator := ',';
    ShortDateFormat := 'dd/mm/yy';

    et que je restitue les
    old_ DecimalSeparator
    old_ShortDateFormat
    à la clôture...
    je ne pense pas que cela soit un problème.

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    DecimalSeparator := '.';
    je l'ai déjà fait ça marche pas sur les "currency"

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 092
    Points
    41 092
    Billets dans le blog
    62
    Par défaut
    Et vous ne pensez pas que cela peut être du à l'endroit où vous mettez cette instruction ?
    Dire "ça marche pas" sans donner de contexte c'est un peu court !
    le code que j'ai fourni dans ce sujet fonctionne parfaitement (il vous suffit de le tester) . Pour avoir fait des applications multilingues ou sur devant tourné sur des postes de différentes configurations , j'ai toujours utilisé cette technique en ne changeant surtout pas la configuration du poste

    Citation Envoyé par ANDNOTOR
    Sinon, obliger l'utilisateur à modifier ses réglages (voire le faire sans rien lui dire) est plus que discutable. C'est à l'application de s'adapter.
    je suis en plein accord avec cette maxime . Un "américain des Etats Unis" préférera lire une date MM/DD/YY contrairement a un francophone et beaucoup d'autres américains (du sud) qui préférera un DD/MM/YY c'est bien au programme de s'adapter . Je parle de dates ici car j'ai eu un petit soucis avec ces dernières récemment un oubli de traduction vite corrigé
    Je n'ai pas en tête de problème avec des TEdit ou TDBEdit (par acquit de conscience je vais quand même vérifier avec un petit programme D7)

  16. #16
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par chekkal Voir le message
    je l'ai déjà fait ça marche pas sur les "currency"
    Pour l'appli qui m'a fait consulter le forum pour solutionner un écart entre deux dates il y a qq jours, j'utilise pour les montants un TCurrencyEdit et c'est de cette façon que j'ai résolu le problème grâce à l'époque à un membre du forum Delphi.
    Mais je ne suis qu'un amateur et pas un pro, donc je n’affirme rien.

  17. #17
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    mais le probleme c'est que moi je saisie dans un DBGRID

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 092
    Points
    41 092
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par sergiomaster le 09/11/2013
    Et vous ne pensez pas que cela peut être du à l'endroit où vous mettez cette instruction ?
    Réfléchissez , une dbgrid est crée quand ? et donc quand faut-il déclaré le decimalseparator ?

    voici où je l'ai placé pour l'unité test que j'avais faite pour un autre sujet du forum
    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 testhackProject1;
     
    uses
      Forms,SysUtils,
      testhackunit in 'testhackunit.pas' {Form1};
     
    {$R *.res}
     
    begin
      Application.Initialize;
      DecimalSeparator:='.';
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    cependant il est très malvenu de changer les habitudes d'un utilisateur ,
    une personne qui à l'habitude d'utiliser un point décimal aura toujours tendance à lire 3,256 comme trois mille deux cent cinquante six et non trois point deux cent cinquante six (cette réaction est normale et quand il s'git de dates c'est encore plus frappant)

Discussions similaires

  1. Comment modifier les paramètres proxy dans firefox ?
    Par hackoofr dans le forum VBScript
    Réponses: 4
    Dernier message: 15/01/2014, 00h14
  2. Comment modifier les paramètres vidéos ?
    Par hellotk dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/04/2011, 23h39
  3. Comment modifier les paramètres de ce merveilleux éditeur wysywyg tout simple ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 07/05/2009, 17h02
  4. Réponses: 0
    Dernier message: 22/11/2007, 12h42
  5. [Excel]Comment détecter les paramètres régionaux
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/09/2006, 11h01

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