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

Langage Delphi Discussion :

Delphi se trompe sur le DecimalSeparator


Sujet :

Langage Delphi

  1. #1
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut Delphi se trompe sur le DecimalSeparator
    Salut tout le monde, Delphi trouve que le DecimalSeparator et un . alors que sur mon ordinateur, il est définit comme étant un , donc cela me procure des petits soucis pour écrire dans Excel avec un format spécifique qui utilise le DecimalSeparator.

    Connaissez-vous d'ou vient ce problème ?

    Peut-on récupérer le DecimalSeparator utilisé dans Excel avec un TExcelApplication par exemple ?

    Merci.

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Tu ne peut pas toi meme regler le Decimal separator de l'application ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Decimalseparator := '.';
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Non je ne peux pas, parce que je dois reprendre celui de la machine de l'utilisateur.

    S'il utilise des , et que je lui mets des . ou inversement, je ne suis pas sûr qu'il serra content.

  4. #4
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    mais comme le dit clorish, tu peux utiliser la variable DecimalSeparator et ça te donneras celui qui est défini sur le système.

  5. #5
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    J'utilise déjà le DecimalSeparator, mais Delphi le reconnait comme étant le . sur ma machine alors que quand je vais voir les paramètres de la machine et que je vais voir aussi sur Excel, je suis défini en , donc le DecimalSeparator que Delphi me donne ne correspond pas à celui défini sur ma machine.

    Je cherche donc un moyen pour le récupérer d'une autre façon puisque celle la ne marche pas, en fait, j'ai surtout besoin de connaitre celui définit dans Excel.

  6. #6
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Citation Envoyé par WebPac
    donc le DecimalSeparator que Delphi me donne ne correspond pas à celui défini sur ma machine.
    Pas logique du tout. Ca fonctionne bien d'habitude et ce dans différent pays étrangers.

    Quelle est la valeur de la variable globale UdateFormatSettings ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  7. #7
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Très bonne question, je ne sais pas du tout, je regarde ça et je te le dis de suite.

  8. #8
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    J'ai cherché, cette variable n'est pas trouvée. Il me dit indicateur non déclaré...

  9. #9
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Je l'avais écrit de mémoire, en fait c'est :
    Application.UpdateFormatSettings
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Sous winXP,tu peux regarder dans la barre des tâches, si la barre des langues est bien sur FR, si elle est sur EN: c'est peut être la cause du PB.

    Pour les autres windows, il faut aller dans le panneau de config. pour
    vérifier les options régionales : elles ont pu être modifiées par un autre
    logiciel.

    J'utilise personnellement cette fonction dans plusieurs composants ( saisie de FLOATS ) et j'ai déjà eu ce problème après installation de logiciels en version US.

  11. #11
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Nono40, la variable Application.UpdateFormatSettings est à True.
    La barre de langue est à FR.

    En fait cela voudrait-il dire que je n'ai pas de certitudes quant à la validité de ce que me retourne le DecimalSeparator ?
    Il n'y a pas moyen de pouvoir récupérer la vrai valeur ?
    castlemaster, tu dis que tu as eu ce même genre de problème, comment as-tu fait pour retomber sur tes pattes ?

    Merci à tous de m'aider en tout cas.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    salut

    pour obtenir le decimal separator tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var
      MonFormat: TFormatSettings;
    begin
      GetLocaleFormatSettings(0, MonFormat);
      MonFormat.DecimalSeparator;
      ...
    end;
    mais normalement la variable DecimalSeparator doit fonctionner correctement.


    autre solution, aller chercher la valeur dans la base de registres, il me semble que c'est dans HKEY_CURRENT_USER\Control Panel\International
    valeur sDecimal (ou sMonDecimalSep peut être, à vérifier).

  13. #13
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    HKEY_CURRENT_USER\Control Panel\International\sMonDecimalSep
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  14. #14
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Merci pour tout, maintenant cela fonctionne très bien.

    En fait, j'avais dans une unité récupérée du net une initialization qui redéfinissait le DecimalSeparator, donc forcément ça ne pouvait pas très bien marcher.

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

Discussions similaires

  1. delphi 7 : tuto sur la creation d'une classe ?
    Par Lorenzo77 dans le forum Delphi
    Réponses: 4
    Dernier message: 18/05/2006, 01h33
  2. programme delphi impossible à executer sur un poste
    Par lux dans le forum Composants VCL
    Réponses: 4
    Dernier message: 23/11/2005, 21h22
  3. Intégration de l'aide Delphi V7 FR sur une V7 US ?
    Par Laurent Dardenne dans le forum EDI
    Réponses: 5
    Dernier message: 03/10/2005, 20h45
  4. [Delphi 6] dessiner sur composant QuickRep
    Par KrusK dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/06/2005, 00h48
  5. Réponses: 5
    Dernier message: 24/04/2005, 04h09

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