Globalization.CultureInfo

17/02/2007 - 12:17 por Gastoncito | Informe spam
Buenos Dias

debido a que en las PCs donde estoy instalando una aplicacion

existe ya una de un tercero
que utiliza el punto "." como separador decimal
lo que no es correcto para nuestra configuracion regional

esta aplicacion del tercero... no funciona si estos parametros se configuran
correctamente...

en algun post anterior me recomendaron utilizar...

Dim miCulturaNueva As New Globalization.CultureInfo("es-AR")

miCulturaNueva.NumberFormat.CurrencyDecimalSeparator = ","

miCulturaNueva.NumberFormat.NumberDecimalSeparator = ","

System.Threading.Thread.CurrentThread.CurrentCulture = miCulturaNueva


al inicio de mi aplicacion, ... por lo que puedo ver... esto es vàlido en el
CurrentThread,
que pasa si abro otros threads.. o mi aplicacion llama a otras DLL ?
hay alguna manera de hacerlo "GLOBALMENTE" en mi aplicacion??
es decir Como? y Donde puedo poner el còdigo para que me tome mi cultura
en toda la aplicacion?

Preguntas similare

Leer las respuestas

#1 SoftJaén
17/02/2007 - 14:51 | Informe spam
Gastoncito:

El sábado pasado, más o menos a ésta hora, ya te indiqué lo que debías de
hacer. ¿Has leído mi respuesta? Si no la has leído, me lo dices y la envío
de nuevo. Y si la has leído, y no te sirve la información que te indiqué,
pues coméntanos el motivo para que no te sirva. :-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Gastoncito
18/02/2007 - 14:29 | Informe spam
Enrique
La respuesta que me brindò es vàlida.
El inconveniete es que tengo muy avanzada la aplicacion... y me es imposible
volver a modificarla

y en las mismas pc donde estoy instalando, ademàs, hay otra aplicacion de un
tercero que no funciona sin los separadores decimales contrarios a los
mios... y a los correctos para esta zona

por lo tanto, no me quedan muchas mas opciones que modificar mi cultura para
toda la aplicacion...
incluyendo mis DLLs etc..

muchas gracias


From: "SoftJaén"
Newsgroups: microsoft.public.es.dotnet.vb
Sent: Saturday, February 17, 2007 10:51 AM
Subject: Re: Globalization.CultureInfo


Gastoncito:

El sábado pasado, más o menos a ésta hora, ya te indiqué lo que debías de
hacer. ¿Has leído mi respuesta? Si no la has leído, me lo dices y la envío
de nuevo. Y si la has leído, y no te sirve la información que te indiqué,
pues coméntanos el motivo para que no te sirva. :-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.






"SoftJaén" escribió en el mensaje
news:
Gastoncito:

El sábado pasado, más o menos a ésta hora, ya te indiqué lo que debías de
hacer. ¿Has leído mi respuesta? Si no la has leído, me lo dices y la envío
de nuevo. Y si la has leído, y no te sirve la información que te indiqué,
pues coméntanos el motivo para que no te sirva. :-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 SoftJaén
18/02/2007 - 18:35 | Informe spam
"Gastoncito" escribió:

La respuesta que me brindò es vàlida.
El inconveniete es que tengo muy avanzada la aplicacion... y me es
imposible volver a modificarla



Bueno, al menos espero que te sirva para tus futuros proyectos. :-)

por lo tanto, no me quedan muchas mas opciones que modificar mi cultura
para toda la aplicacion... incluyendo mis DLLs etc..



Para que el subproceso principal de tu aplicación tome un objeto CultureInfo
en concreto, éste deberás de definirlo a nivel global de tu proyecto,
declarando la variable objeto correspondiente como Public en un módulo
estándar, e instanciando dicho objeto en el procedimiento «Sub Main», que
deberá ser el objeto inicial de la aplicación:

Module Module1

Public ci As Globalization.CultureInfo

Public Sub Main()

' Definimos el objeto CultureInfo
ci = New Globalization.CultureInfo("es-AR")

' Le asignamos el objeto CultureInfo al subproceso actual.
Threading.Thread.CurrentThread.CurrentCulture = ci

' Mostramos el formulario inicial del proyecto
Application.Run(Form1)

End Sub

End Module

Ahora bien, si creas nuevos subprocesos (Threads), tendrás igualmente que
asignarle el objeto CultureInfo que deseas utilizar, porque de lo contrario,
el nuevo subproceso tomará el que se encuntre definido por defecto en el
sistema:

' Creamos un nuevo subproceso y definimos su punto de entrada.
Dim th As New Threading.Thread(AddressOf NombreProcedimientoSub)

' Comprobamos la cultura existente actualmente en el sistema.
'
MessageBox.Show(th.CurrentCulture.Name)

' Asignamos al subproceso el objeto CultureInfo
' que vamos a utilizar el toda la aplicación.
'
th.CurrentCulture = ci

' Comprobamos que la cultura del nuevo subproceso
' se ha modificado a "es-AR".
'
MessageBox.Show(th.CurrentCulture.Name)

' Iniciamos el subproceso
th.Start()

Hasta donde llegan mis conocimientos, es lo único que creo que puedes hacer.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 SoftJaén
18/02/2007 - 19:05 | Informe spam
Bueno, leyendo de nuevo mi respuesta, creo que puede dar lugar a dudas con
el alcance de visibilidad de las variables. :-(

Donde dice:

[...] Para que el subproceso principal de tu aplicación tome un objeto
CultureInfo en concreto, éste deberás de definirlo a nivel global de tu
proyecto, [...]

Hay que añadirle lo siguiente:

[...] siempre y cuando tengas pensado crear nuevos subprocesos, digamos que
distintos al subproceso principal, y desees asignarle el mismo objeto
CultureInfo que tienes definido, porque de lo contrario, no es necesario
mantener una variable objeto declarada como Public.

En definitiva, que deberás de declarar una variable Public en un módulo, si
tienes pensado utilizar la misma variable objeto en varios procedimientos de
tu aplicación.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida