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 :

[D7] modification option regional par programmation


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 35
    Points
    35
    Par défaut [D7] modification option regional par programmation
    salut tt le monde,

    comment je pux modifier le format d'affichage des monnaies, nombres... par programmation.

    c'est sur question des API, mais lesquels

    merci en avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Points : 754
    Points
    754
    Par défaut
    fonction APIWin32 SetLocaleInfo
    ou
    dans l'unité SysUtils voir :
    var CurrencyString: string;
    var CurrencyFormat: Byte;
    var NegCurrFormat: Byte;
    var ThousandSeparator: Char;
    var DecimalSeparator: Char;
    var CurrencyDecimals: Byte;
    var DateSeparator: Char;
    var ShortDateFormat: string;
    var LongDateFormat: string;
    var TimeSeparator: Char;
    var TimeAMString: string;
    var TimePMString: string;
    var ShortTimeFormat: string;

    var LongTimeFormat: string;
    var ShortMonthNames: array[1..12] of string;
    var LongMonthNames: array[1..12] of string;
    var ShortDayNames: array[1..7] of string;
    var LongDayNames: array[1..7] of string;

    var SysLocale: TSysLocale;
    var EraNames: array[1..7] of string;
    var EraYearOffsets: array[1..7] of Integer;
    var TwoDigitYearCenturyWindow: Word = 50;

    var TListSeparator: Char;
    + Consulter TApplication.UpdateFormatSettings : boolean;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 35
    Points
    35
    Par défaut [D7] modification option regional par programmation
    Citation Envoyé par Fabrice ROUXEL 1
    fonction APIWin32 SetLocaleInfo
    ou
    dans l'unité SysUtils voir :
    + Consulter TApplication.UpdateFormatSettings : boolean;
    Je tu remercie beaucoups pour ta réponse.

    pour ton 1 réponse, J'avais essayer avec l'APIWin32 SETLOCALINFO, et il marche bien seulement dans le cas ou je veux changer le pays "Français (france)" par "Arabe (Algérie)" il marche pas. comment je dois procéder pour le faire. est-ce-si possible.

    Bon, pour le second, dans SysUtils, il n'ya aucun fonction qui me permet de changer les paramètres régionales, il y'a que des fonction de récupération.

    mon pb, est que je veux changer automatiquement le pays de format d'affichage.
    merci en avance

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    S'il s'agit de re-configurer de façon quasi-définitive les paramètres régionaux de Windows vaut mieux le faire directement avec Windows sans passer par Delphi.

    Par contre, s'il s'agit de remplacer, pendant la durée d'utilisation d'un programme Delphi, par exemple le symbole F du Franc par un autre symbole ou une série de caractères comme Euros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var VieuxCurrencyString: string;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin       VieuxCurrencyString:=CurrencyString;
                  CurrencyString:='Euros'; // ou Dinards 
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin       CurrencyString:=VieuxCurrencyString; // rétablissement état initial
    end;

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Gilbert Geyer
    S'il s'agit de re-configurer de façon quasi-définitive les paramètres régionaux de Windows vaut mieux le faire directement avec Windows sans passer par Delphi.

    Par contre, s'il s'agit de remplacer, pendant la durée d'utilisation d'un programme Delphi, par exemple le symbole F du Franc par un autre symbole ou une série de caractères comme Euros :
    je tue remercie beaucoups,
    je m'explique ma situation.

    mon applicaition utilise la langue arabe, et lorsque ce paramètre régional (stabdard et format) est modifie par un autre pays 'ex: français' mon application sa marche pas. les caractères arabe ne saffichent pas correctement.

    moi je veux savoir pourquoi ce modification de ce paramètre change dans l'affichage des caractères tant que il concerne le format des nombres, heurs... et comment je doit procèder par programmaton pour eviter ce gene de pb durant l'execution de mon application.

    merci,

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,
    mon applicaition utilise la langue arabe, et lorsque ce paramètre régional (stabdard et format) est modifie par un autre pays 'ex: français' mon application sa marche pas. les caractères arabe ne saffichent pas correctement.
    Si je comprends bien ton application marche chez toi mais pas chez quelqu'un d'un autre pays. Pour afficher chez moi des caratères arabes, russes ou chinois il faudrait déjà pour commercer que je possède les polices de caractères en question. Ensuite c'est ton application qui décide si les caractères doivent s'afficher de la droite vers la gauche ou l'inverse et cela doit marcher même si mon Windows est configuré pour le français car Windows s'en fout pas mal de savoir quelle est la police de caratères que j'utilise. Et c'est kif-kif pour ce qui concerne le symbole monétaire ou le format des nombres et des heures puisque c'est l'appli Delphi qui décide que les heures seront affichées au format hh:mm:ss:ms ou seulement en hh:mm.

    Pour avancer il faudrait régler un problème après l'autre car on a vu que s'il sagit du symbole monétaire on peut régler le problème avec une variable globale.
    C'est quoi le problème du format des nombres ? Cela me turlupine car même en France on utilise les chiffres dits arabes.

    Plus on en saura davantage sur la clarification des problèmes plus il y aura des chances que quelqu'un saura t'apporter des réponses.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Gilbert Geyer
    Bonjour,
    Pour avancer il faudrait régler un problème après l'autre car on a vu que s'il sagit du symbole monétaire on peut régler le problème avec une variable globale.
    C'est quoi le problème du format des nombres ? Cela me turlupine car même en France on utilise les chiffres dits arabes.

    Plus on en saura davantage sur la clarification des problèmes plus il y aura des chances que quelqu'un saura t'apporter des réponses.
    merci pour cette explication.
    on va aller pas à pas. Si tu veux developper une application en arabe et qu'elle doit etre marché meme dans d'autres machines alors la langue arabe doit etre installer sur la machine desinataire et en plus dans l'option avancé de l'option régional, la langue arabe doit etre selectionnée afin d'afficher correctement les caractères arabes (pour l'instant normalement vous etes d'accord, tres bien).
    Mon pb est que lorsque je change le pays (concerne standard et format) dans l'option regional sur la meme poste ou je travail, les caractères arabes ne s'affiche pas bien.

    est-ce-qu'il y'a une explication pour ça. pourtant ce paramètre concerne le format des symboles monétaires...

    merci en avance, et j'espère que je suis claire maintenant.

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Ok sur "la langue arabe doit etre installée sur la machine desinataire"

    Pour la suite "et en plus dans l'option avancée de l'option régional, la langue arabe doit etre selectionnée afin d'afficher correctement les caractères arabes" : ceci est très certainement vrai, par contre du coup je suis complètement largué car j'en suis resté avec Windows 98 où il ne figure aucune option avancée dans les paramètres régionnaux. Désolé.

  9. #9
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut


    pour afficher la langue arabe il faut l'installer , mais peut etre dans votre application ca marche pas , parceque votre composant ne support pas l'Unicode alors pour ce la il faut changer ca dans Regional and Language Options puis Advanced et selectioner un langue arabe et va marche bien ( Tout ca pour l'affichage du langue arabe correctement)

    mais pour le date ou la Currency c'est autre chose , vous pouvez changer le nom de la pay dans Regional Options mais peut etre ca marche pas avec vous comme vous voulez mais vous pouvez avec Custmize de changer exactement qu'est ce que vous voulez , sans chamger les pays, comme la format du date ......etc

    a vous

Discussions similaires

  1. [XL-2010] Déplacer les options buttons par programmation
    Par Gautheron dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2014, 22h10
  2. Réponses: 6
    Dernier message: 31/12/2013, 15h16
  3. Modification d'un Web.sitemap par programmation
    Par thib42 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/11/2008, 17h14
  4. Modification de report par programmation
    Par phsmi dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 01/09/2008, 14h56
  5. Modification du chemin des programmes installés par défaut
    Par djerba dans le forum Windows Vista
    Réponses: 2
    Dernier message: 06/02/2008, 00h00

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