Ja det ved jeg man kan ... men jeg vil ikke selv sætte DecimalSeparator.
Jeg forsår ikke hvorfor DecimalSeparator ikke indeholder det der står i "Regional Settings -> Decimal symbol". Der ser ud til at DecimalSeparator ikke bliver opdateret når man skifter "Regional Settings -> Decimal symbol".
Jeg vil bare være sikker på at programmet eksempelvis skriver tallet ud med "," i tyskland og med "." i england.
Når du ændrer DecimalSeparator-værdien i et Delphi-program, så ændrer du ikke Windows' indstilling. Bare for at slå den sag fast.
Med et program har jeg prøvet at ændre værdien via Control Panel / Regional Settings og det virker altså fint. Komma den ene gang jeg kører mit program, Punktum det andet - det virker og du må gøre et eller andet forkert.
var OldDecimalSeparator : char; begin OldDecimalSeparator := DecimalSeparator; DecimalSeparator := '.'; try // F.eks. en eller anden SQL-sætning der bruger decimalseparator finally DecimalSeparator := OldDecimalSeparator; end; end;
Jeg kan ikke udelukke at jeg for sat decimalseparator et andet sted i programmet...der er mange linier kode:) Jeg plejer dog altid at gemme DecimalSeparator, præcis som i dit eksempel.
Jeg prøver lige at lave et lille testprogram for at teste din påstand.
Er der ikke mulighed for at hente defaultværdien tilbage af DecimalSeparator?
Bare lige en detalje, hvis dit program kører og der ændres i local-settings, så skal programmet jo igen forespørge windows om (i dit ex.) decimal-seperator. Jeg ved ikke om delphi gør abonnerer(eller hvad det hedder) på opdatering af local-settings, men hvis det gør så må du ihvertilfælde sørge for at din kopi af decimal-seperator osse opdateres(du kan jo bare altid kun bruge delphis). Og har du så osse et problem med skærmen, for hvad hvis der vises en række (eller kolonne ha!) af tal, de skal jo reformateres hvis der ændres i local-settings. Bare prøv at ændre dato-fmt medens outlook kører; den reagerer strax...
Løsning: Dit program læser KUN local-settings i opstart disse beholdes (derfor egen KOPI i dit program) indtil programmet gen-startes.
--nop
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.