Options regionales

cs_sidalilo Messages postés 108 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 9 juillet 2013 - 25 oct. 2008 à 09:26
cs_sidalilo Messages postés 108 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 9 juillet 2013 - 26 oct. 2008 à 13:09
salut ..
je veux modifier dans les options regionales+personnaliser le symbole decimal(',') par('.') en delphi
comment modifier le symbole decimal par delphi .
merci pour votre attention.

3 réponses

L_art_ment Messages postés 302 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 6 février 2013
25 oct. 2008 à 09:46
Bonjour,
Pour ce faire, il faut que tu modifies la base de registre, particuliérement la clé HKEY_CURRENT_USER\Control Panel\International\sDecimal
Et normalement c'est bon...

<hr />
L'Armand joue, l'arme en joug... Mon site
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
25 oct. 2008 à 17:39
Salut,

voici un exemple complet qui utilise une autre manière:

{—————————————————————————————————————————————————————————————————————————}
{ Project : DSDemo.dpr }
{ Comment : Modification de DecimalSeparator }
{ au niveau Système }
{ }
{ Date : 25/10/2008
13:23:00 }
{ Author : Cirec }
{—————————————————————————————————————————————————————————————————————————}
{ Last modified }
{ Date : 25/10/2008 17:32:06 }
{ Author : Cirec }
{—————————————————————————————————————————————————————————————————————————}
Unit UMain;

Interface

Uses
  Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Type
  Tfrm_Main = Class (TForm)
    lbl_DSeparateur: TLabel;

    btn_SetDSeparator: TButton;
    Procedure
btn_SetDSeparatorClick(Sender: TObject);
    Procedure FormCreate(Sender: TObject);
  Private
    Procedure UpdateLabel;
     { Déclarations privées }
  Public
    { Déclarations
publiques }
  End;

Var
  frm_Main: Tfrm_Main;

Implementation

{$R *.dfm}
Const

{Séparateur décimale par défaut pour la
France}
  DefaultDecimalSeparator = ',';

Var

  OldDecimalSeparator: Char;

{Mise
à jour de la variable DecimalSeparator}
Procedure GetDecimalSeparator;
Begin
  DecimalSeparator :=
GetLocaleChar(GetThreadLocale, LOCALE_SDECIMAL, '.');

End ;

{Change la valeur DecimalSeparator au niveau du
système}
Function
SetDecimalSeparator(Const
DecimalChar: Char = DefaultDecimalSeparator): Boolean;
Var Buffer : Array[0..1] Of Char;
Begin
  Buffer[0] :=
DecimalChar;
  Buffer[1] := #0;
  Result := SetLocaleInfo(GetThreadLocale,
LOCALE_SDECIMAL, Buffer);
  {Force la mise à jour de
la variable DecimalSeparator}
  GetDecimalSeparator;
End ;

Procedure
Tfrm_Main.btn_SetDSeparatorClick(Sender: TObject);
Begin
  If DecimalSeparator =
DefaultDecimalSeparator Then

    SetDecimalSeparator('.')

  Else

    SetDecimalSeparator(DefaultDecimalSeparator);

  UpdateLabel;
End;

Procedure Tfrm_Main.FormCreate(Sender: TObject);

Begin
  UpdateLabel;
End;

Procedure
Tfrm_Main.UpdateLabel;
Begin

  lbl_DSeparateur.Caption := DecimalSeparator + ' ' + IntToStr(Ord(DecimalSeparator));
End ;

Initialization

  OldDecimalSeparator : = DecimalSeparator;
Finalization
  {Avant de
quitter on remet la variable comme on l'a trouvé}

  SetDecimalSeparator(OldDecimalSeparator);
End.
 
@+
Cirec

<hr siz="" />
0
cs_sidalilo Messages postés 108 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 9 juillet 2013
26 oct. 2008 à 13:09
merci bien cirec pour votre aide.
cardialement sidalilo
0
Rejoignez-nous