Paramètres régionaux

Résolu
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - Modifié par grandyaka54 le 5/11/2013 à 17:35
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 18 déc. 2013 à 16:29
Bonjour,

Je sais que la question a été posé plusieurs fois mais je me permets de le reposer car je n'ai pas trouvé réponse.
Je développe sous Delphi XE3 / Win Seven.

A l'ouverture du logiciel, on initialise les paramètres régionaux de cette manière :

FormatSettings.DecimalSeparator := ',';
FormatSettings.ThousandSeparator := ' '; //Espace

FormatSettings.DateSeparator := '/';
FormatSettings.ShortDateFormat := 'dd/mm/yyyy';

Pendant que le logiciel est ouvert, on a aucun soucis de lecture, d'écriture, d'affichage, de conversion de montant et de date.

Or, on a certains clients qui ont des logiciels qui modifie les paramètres régionaux (remplace DecimalSeparator par un '.'). Du coup, dans le logiciel qui est toujours ouvert, on a des erreurs de conversion comme par exemple la fonction StrToCurr('100,50') si DecimalSeparator vaut '.'
Message d'erreur : '100.50' n'est pas une valeur en virgule flottante correcte.

Il y a t-il moyen de forcer nos paramètres régionaux et de s'y tenir tant que le logiciel n'est pas fermé même si entre-temps d'autres logiciels modifient ces valeurs ?

Cordialement.

3 réponses

dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
6 nov. 2013 à 11:50
Salut
avec un timer peut être
0
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
6 nov. 2013 à 16:58
Bonjour dubois77,

Merci de me venir en aide.

Alors avec un Timer ??
Ce que tu veux dire, c'est que tout les x secondes (ou minutes), on réinitialise les paramètres régionaux ?

FormatSettings.DecimalSeparator := ',';
FormatSettings.ThousandSeparator := ' '; //Espace

FormatSettings.DateSeparator := '/';
FormatSettings.ShortDateFormat := 'dd/mm/yyyy';

Pourquoi pas, à voir.

Merci.
0
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
18 déc. 2013 à 16:29
Salut,

Je me suis replongé dans mon problème concernant les paramètres régionaux et j'ai trouvé en cherchant de nouveau, une propriété assez intéressante :
Application.UpdateFormatSettings

Touche F1 :
Spécifie si les paramètres de format sont actualisés automatiquement quand l'utilisateur (ou une application dans mon cas) modifie la configuration du système.
Utilisez UpdateFormatSettings pour contrôler l'actualisation automatique des paramètres de format. La valeur par défaut, true, est définie dans le constructeur.

Cordialement.
0
Rejoignez-nous