PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → WINDOWS 11 problème séparateur de millier
WINDOWS 11 problème séparateur de millier
Débuté par Taybi HICHAM, 26 mar. 2023 18:17 - 3 réponses
Membre enregistré
1 message
Posté le 26 mars 2023 - 18:17
Bonjour
J'ai une application qui est développé avec WinDev 26 quand j'enregistre un chiffre par exemple : 10 150 sous Windows 11 le chiffre change complètement est deviens 10 mais sous Windows 10 ou 7 pas de problème.
J'ai regardé dans les paramètres régionaux, séparateur de millier=espace vide sous Windows 11 ils sont les mêmes que Windows 10.

Si quelqu'un a une solution à ce problème.

Merci
Message modifié, 26 mars 2023 - 18:21
Posté le 27 mars 2023 - 09:01
Bonjour,
A voir si c'est une piste mais le séparateur de millier sous Windows 11 n’est plus l’espace mais l’espace insécable.
c.f. ce post : https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/254806-numeriqueverschaine-windows/read.awp
Membre enregistré
23 messages
Posté le 06 juillet 2023 - 17:11
Bonjour, après lecture de votre post j'ai constaté que mon soucis d'affichage d'un monétaire dans un etat pouvait être lié.




J'ai donc repris mes vieux codes car j'avais déjà été confronté a ce même soucis.

//Dans le code en début de projet
CONSTANT
LOCALE_SMONDECIMALSEP = 0x16 //Séparateur décimal monétaire
LOCALE_SMONTHOUSANDSEP = 0x17 //Séparateur de millier monétaire
FIN




gcSeparateurDecimale est un caractère = OFX_SeparateurNumerique(LOCALE_SMONDECIMALSEP) // Ici le séparateur Décimal si on en a besoin
gcSeparateurMille est un caractère = OFX_SeparateurNumerique(LOCALE_SMONTHOUSANDSEP) // Ici le séparateur des Milles, et qui nous interesse Ici


// On contrôle, si le séparateur des Mille est differend de "Espace" alors on change.

SI Asc(gcSeparateurMille)<>32 ALORS ChangeSéparateur(sepMILLIER, Caract(32))

//Ce qu'il y a de bien, c'est que l'on ne modifie pas la configuration de Windows.






//------------------------------------------------------
DANS les procédures globales
//------------------------------------------------------

Procedure SeparateurNumerique(_SeparateurRechercher)
sReturn est une chaîne
nlReturn est un entier
nlLocaleID est un entier
niType est un entier


niType =_SeparateurRechercher

nlLocaleID = API("kernel32","GetUserDefaultLCID","USER")

//Appel de la fonction en passant la variable locale
//Pour récupérer la taille du buffer du string dont nous avons besoin
nlReturn= API("kernel32","GetLocaleInfoA",nlLocaleID,niType, sReturn, Taille(sReturn))

//Si c'est OK..
SI nlReturn ALORS
//On complète le buffer avec des espaces
sReturn = Complete(sReturn,nlReturn)
//et nouvel appel en passant la mémoire tampon
nlReturn = API("kernel32","GetLocaleInfoA",nlLocaleID, niType, sReturn, Taille(sReturn))
//Si Ok (lReturn > 0)
SI nlReturn >0 ALORS
//lReturn contient la taille de la chaîne de caractères comprenant la terminaison nulle
RENVOYER Gauche(sReturn, nlReturn - 1)
FIN
FIN


--
Il vaut mieux plusieurs têtes qui trouvent, qu'une seule tête qui cherche !

On trouve des chercheurs qui cherchent, mais on cherche des chercheurs qui trouvent !
Posté le 26 juin 2024 - 08:25
si un carré apparait dans l’affichage des nombres, des chiffres, voilà la solution :

cela apparait surtout sous Windows 11
pour le résoudre allez dans ...

Paramètres de Windows 11
Paramètres de la langue d’administration (tout en bas)
Sélectionner l’onglet Formats, et tout en bas cliquer sur Paramètres supplémentaires
Sélectionner l’onglet Nombres, puis “Symbole de groupement des chiffres” et choisissez un point “.”
Faites appliquer et tester