Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2008
JuanchoArg JuanchoArg is offline
Miembro
 
Registrado: nov 2005
Posts: 30
Poder: 0
JuanchoArg Va por buen camino
Cambiar Configuracion Regional desde Delphi

Hola Amigos!!!
Necesito que mi aplicacion cambie la configuracion regional de la PC , mas precisamente el simbolo decimal y el separador de miles. Cómo se hace esto desde delphi? Ayuda pleaseeee!!!

Un abrazo y gracias!!!
Responder Con Cita
  #2  
Antiguo 09-10-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
No es necesario que cambies la configuración regional de Windows para indicarle a tu aplicativo con que símbolos debe trabajar... ya que solo es cuestión de cambiar los valores de ciertas variables globales, como los son, por ejemplo:

DecimalSeparator := '.';
ThousandSeparator := ',';

Busca mas información en la ayuda, sobre dichas variables globales, pues hay mas...

Espero te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 10-10-2008
JuanchoArg JuanchoArg is offline
Miembro
 
Registrado: nov 2005
Posts: 30
Poder: 0
JuanchoArg Va por buen camino
Gracias amigo, pero necesito que cambie la configuracion del equipo y no solo la de mi aplicacion. Tienes idea de como hacerlo?

Saludos
Responder Con Cita
  #4  
Antiguo 10-10-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por JuanchoArg Ver Mensaje
Gracias amigo, pero necesito que cambie la configuracion del equipo y no solo la de mi aplicacion. Tienes idea de como hacerlo?

Saludos

Entonces apuesto que el siguiente hilo te ayudara http://www.clubdelphi.com/foros/show...08&postcount=4
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 10-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
JuanchoArg,
Debes tener en cuenta que los cambios en la configuración regional pueden afectar a otros sistemas que se empleen.
No es bueno cambiar la configuración sino se tiene la certeza de que algo puede verse afectado.

Sobre todo si se altera el uso de simbolos decimal y el separador de miles. Un ejemplo de un software que se verá afectado por algún cambio es Excel.
Imaginate como se puede llegar a comportar un sistema de crédito, un sistema de puesto de venta.
No es lo mismo 800.000 que 800,000

No más te recomiendo que analices bien esto. No vaya a ser cosa que después te des con algunas sorpresitas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 10-10-2008
JuanchoArg JuanchoArg is offline
Miembro
 
Registrado: nov 2005
Posts: 30
Poder: 0
JuanchoArg Va por buen camino
Hola Delphius, se cuales son las consecuencias de hacer eso. El tema es que le queria ahorar a un usuario (él me lo pidió) tener que hacer ese cambio en la configuracion regional en forma manual agregandola a una barra flotante que he armado en delphi con aplicaciones varias.
Hay un sistema de la AFIP, el SIAP, que le cambia la configuracion regional y cuando sale de tal sistema no la regresa a valores anteriores y todos los sistemas se ven afectados, precisamente el excel , como decias.
Debe haber alguna forma de acceder a estos valores en el registro de windows y modificarlos con delphi. Si no me sale aqui tendré que hacerlo con VB .

Saludos Cordiales.
Responder Con Cita
  #7  
Antiguo 10-10-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por JuanchoArg Ver Mensaje
Hola Delphius, se cuales son las consecuencias de hacer eso. El tema es que le queria ahorar a un usuario (él me lo pidió) tener que hacer ese cambio en la configuracion regional en forma manual agregandola a una barra flotante que he armado en delphi con aplicaciones varias.
Hay un sistema de la AFIP, el SIAP, que le cambia la configuracion regional y cuando sale de tal sistema no la regresa a valores anteriores y todos los sistemas se ven afectados, precisamente el excel , como decias.
Debe haber alguna forma de acceder a estos valores en el registro de windows y modificarlos con delphi. Si no me sale aqui tendré que hacerlo con VB .

Saludos Cordiales.
Ya viste el hilo que te referencie en mi respuesta anterior?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 10-10-2008
JuanchoArg JuanchoArg is offline
Miembro
 
Registrado: nov 2005
Posts: 30
Poder: 0
JuanchoArg Va por buen camino
Hola Jhonny, si lo vi, pero sinceramente no lo entendí del todo bien. De todos modos ya lo hice en VB, salió mas rapido. Gracias por el interés.

Saludos amigo.
Responder Con Cita
  #9  
Antiguo 15-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
JuanchoArg,
Debes tener en cuenta que los cambios en la configuración regional pueden afectar a otros sistemas que se empleen.
No es bueno cambiar la configuración sino se tiene la certeza de que algo puede verse afectado.

Sobre todo si se altera el uso de simbolos decimal y el separador de miles. Un ejemplo de un software que se verá afectado por algún cambio es Excel.
Imaginate como se puede llegar a comportar un sistema de crédito, un sistema de puesto de venta.
No es lo mismo 800.000 que 800,000

No más te recomiendo que analices bien esto. No vaya a ser cosa que después te des con algunas sorpresitas.

Saludos,
yo necesito eso por q tengo otro software con diferente configuracion regional
quiero q la cambie por la mia a
dd/mm/aaaa
12.526,54

y al cerrar mi aplicacion cambie a.

aaaa.mm.dd
15,526.54

me puedes colaborar compañero ?
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #10  
Antiguo 15-07-2010
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.485
Poder: 20
MAXIUM Va camino a la fama
Al abrir y/o cerrar tu aplicación, debes manipular el registro de Windows, eso es todo.
Responder Con Cita
  #11  
Antiguo 15-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cita:
Empezado por MAXIUM Ver Mensaje
Al abrir y/o cerrar tu aplicación, debes manipular el registro de Windows, eso es todo.
como hago esto desde delphi
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #12  
Antiguo 16-07-2010
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.485
Poder: 20
MAXIUM Va camino a la fama
Ok, de partida esta el evento OnCreate y OnClose

Luego esta la ruta en el registro de Windows con todos estos parametros, tu modificas los que convengan:

Código:
[HKEY_CURRENT_USER\Control Panel\International]
"iCountry"="56"
"iCurrDigits"="2"
"iCurrency"="2"
"iDate"="1"
"iDigits"="2"
"iLZero"="1"
"iMeasure"="0"
"iNegCurr"="9"
"iTime"="1"
"iTLZero"="0"
"Locale"="0000340A"
"s1159"=""
"s2359"=""
"sCountry"="Chile"
"sCurrency"="$"
"sDate"="-"
"sDecimal"=","
"sLanguage"="ESL"
"sList"=","
"sLongDate"="dddd, dd' de 'MMMM' de 'yyyy"
"sShortDate"="dd-MM-yyyy"
"sThousand"="."
"sTime"=":"
"sTimeFormat"="H:mm:ss"
"iTimePrefix"="0"
"sMonDecimalSep"=","
"sMonThousandSep"="."
"iNegNumber"="1"
"sNativeDigits"="0123456789"
"NumShape"="1"
"iCalendarType"="1"
"iFirstDayOfWeek"="6"
"iFirstWeekOfYear"="0"
"sGrouping"="3;0"
"sMonGrouping"="3;0"
"sPositiveSign"=""
"sNegativeSign"="-"
Y como ejemplo:
Código Delphi [-]
USES Registry;


var Reg: TRegistry;
begin
  // Creamos un objeto para manejar el registro
  Reg := TRegistry.Create;

  // Guardamos las opciones
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey( '\Control Panel\International', True ) then
    begin
      Reg.WriteString( 'sShortDate', 'dd/mm/aaaa');
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
Responder Con Cita
  #13  
Antiguo 27-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
si coloco
Reg.WriteString( 'sShortDate', 'aaaa-dd-mm');
o como es:
Reg.WriteString( 'sShortDate', 'yyyy-dd-mm');

en el dbgrid me sigue apareciendo el formato estandar de windows
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #14  
Antiguo 27-07-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por JuanchoArg Ver Mensaje
Hola Amigos!!!
Necesito que mi aplicacion cambie la configuracion regional de la PC , mas precisamente el simbolo decimal y el separador de miles. Cómo se hace esto desde delphi? Ayuda pleaseeee!!!

Un abrazo y gracias!!!
Código Delphi [-]
WinExec(Pchar('rundll32.exe shell32,Control_RunDLL intl.cpl,,/f:"'+ExtractFilePath(Application.ExeName)+'regopts.txt'+'"'), SW_HIDE);

en el txt:
[RegionalSettings]
UserLocale =0480a
UserLocale_DefaultUser =0480a

el 0480a es el codigo que quiero cambiar, en este caso es para el de mi pais.

aqui una lista
__________________
all your base are belong to us
Responder Con Cita
  #15  
Antiguo 28-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Unhappy

Cita:
Empezado por look Ver Mensaje
Código Delphi [-]
WinExec(Pchar('rundll32.exe shell32,Control_RunDLL intl.cpl,,/f:"'+ExtractFilePath(Application.ExeName)+'regopts.txt'+'"'), SW_HIDE);





en el txt:
[RegionalSettings]
UserLocale =0480a
UserLocale_DefaultUser =0480a

el 0480a es el codigo que quiero cambiar, en este caso es para el de mi pais.

aqui una lista
da compa no tengo ni idea que significa esto y para q es.
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #16  
Antiguo 29-07-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por ingabraham Ver Mensaje
da compa no tengo ni idea que significa esto y para q es.
esto:
Código Delphi [-]
WinExec(Pchar('rundll32.exe shell32,Control_RunDLL intl.cpl,,/f:"'+ExtractFilePath(Application.ExeName)+'regopts.txt'+'"'),
lo puedes meter en un boton, si te fijas hace referencia a un archivo regopts.txt, este debe ir en la carpeta en donde esta el exe de tu project, tambien es dentro de este que va el codigo de region;

dentro de regopts.txt :
[RegionalSettings]
UserLocale =0480a
UserLocale_DefaultUser =0480a


con eso puedes cambiar la configuracion reginal de tu ordenador desde delphi
__________________
all your base are belong to us
Responder Con Cita
  #17  
Antiguo 29-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
osea yo quiero q me ponga el formato dd/mm/aaaa
separador mil .
separador decimal ,

con esto lo hago?
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #18  
Antiguo 29-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
como es correcto

Reg.WriteString( 'sShortDate', 'aaaa-dd-mm');
o,
Reg.WriteString( 'sShortDate', 'yyyy-dd-mm');
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #19  
Antiguo 29-07-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
hola un amigo me dio este codigo, como lo puedo adaptar para cambiar la fecha tambien.
q al arrancar mi programa cambie a
dd/mm/aaaa
y al salir
aaaa.mm.dd

en el create del datamodulo y en el destroy
Código Delphi [-]
procedure SetDecimalSeparator(Ch: Char);
var
  DefLCID: LCID;
  Buffer: LPSTR;
begin
  Application.UpdateFormatSettings := True;
  StrPCopy(Buffer, Ch);
  DefLCID := GetThreadLocale;
  if SetLocaleInfo(DefLCID, LOCALE_SDecimal, Buffer) then
    DecimalSeparator := StrPas(Buffer)[1];
  Application.UpdateFormatSettings := False;
end;
procedure SetMoneyDecimalSeparator(Ch: Char);
var
  DefLCID: LCID;
  Buffer: LPSTR;
begin
  Application.UpdateFormatSettings := True;
  StrPCopy(Buffer, Ch);
  DefLCID := GetThreadLocale;
  if SetLocaleInfo(DefLCID, LOCALE_SMONDECIMALSEP, Buffer) then
    DecimalSeparator := StrPas(Buffer)[1];
  Application.UpdateFormatSettings := False;
end;

procedure SetListSeparator(Ch: Char);
var
  DefLCID: LCID;
  Buffer: LPSTR;
begin
  Application.UpdateFormatSettings := True;
  StrPCopy(Buffer, Ch);
  DefLCID := GetThreadLocale;
  if SetLocaleInfo(DefLCID, LOCALE_SLIST, Buffer) then
    DecimalSeparator := StrPas(Buffer)[1];
  Application.UpdateFormatSettings := False;
end;

encontre esta pagina de los codigos :
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
__________________
Enseñar es la virtud de un sabio.

Última edición por ingabraham fecha: 29-07-2010 a las 20:10:13.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar configuracion regional de windows didier API de Windows 3 07-12-2010 12:32:18
Error en font de un grid al cambiar idioma en configuracion regional Gaby123 Varios 5 12-04-2007 20:03:31
Como puedo cambiar la configuración regional y de idioma desde Builder? JuanErasmo C++ Builder 5 21-12-2005 04:47:00
Cambiar configuracion tarjeta de Red desde Delphi Luis F. Orjuela API de Windows 0 02-09-2005 00:12:54
Manejo de la Hora y fecha después de cambiar la configuración regional del equipo uchwem Varios 2 23-11-2004 01:25:45


La franja horaria es GMT +2. Ahora son las 15:56:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi