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 21-08-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Formato currency varia entre XP y Win7

Hola amigos..
Desarrolle una aplicacion en XP y el total de la factura me muestra en XP:

$ 20,00

Pero fui a Windows 7 a probar el sistema (otra maquina) y obtengo: (en el dbgrid y precio unitarios tambien):

20,00 €

Cuando quiero guardar la factura me dice que no es un valor valido.

El amigo ecfisa me recomendo:

Código Delphi [-]
function UnFormatCurr(const CurrValue: string): string;
begin
   Result:= CurrValue;
   Result:= StringReplace(Result, '$', '', [rfReplaceAll]);
   Result:= StringReplace(Result, '.', '', [rfReplaceAll]);
end;

Se podria solucionar con:

Código Delphi [-]
   Result:= StringReplace(Result, '€', '', [rfReplaceAll]);

y para que no se vea en euros y con el signo peso ($) como hago?

Gracias
Responder Con Cita
  #2  
Antiguo 21-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿La configuración regional de windows qué parámetros tiene?
Responder Con Cita
  #3  
Antiguo 21-08-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
NO modifiques la configuracion regional del sistema operativo en ningun programa que hagas
Esa configuracion global esta asi porque el usuario lo seteo de esa forma por algun motivo x (llamese x un programa o servicio que si no tiene esa configuracion no funciona bien, o porque cuando usa el excel le gusta que el separador de decimales sea '.' y no '.' entre otras muchisimas cosas)

Los programas bien diseñados no dependen de la configuracion regional del sistema operativo para funcionar bien.
Los programas bien diseñados formatean la informacion al formato mas adecuado/necesario

Hay muchas formas de lograr el formato numerico o de fechas mas adecuado para tu programa

El mas sencillo es usando las variables globales de tu programa. Con esto te evitas andar lidiando con FormatSettings (si bien es posible crear funciones propias que inicializan el registro FormatSettings/pasan los argumentos correctos a las DateToStr, IntToStr, CurrToStr)

Yo suelo hacerlo con en el .dpr del proyecto:

Código Delphi [-]
program Project1;

uses
  Forms,
  SysUtils,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.UpdateFormatSettings := False;
  Application.UpdateMetricSettings := False;
  CurrencyString := '$';
  DecimalSeparator := '.';
  ThousandSeparator := ',';
  ShortDateFormat := 'dd\mm\yy';
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Código Delphi [-]
  ShowMessage(CurrToStr(100.33)); // --> imprime 100.33
  ShowMessage(DateToStr(Now));  // --> imprime 21\08\15

Notar que es necesario agegar SysUtils en la secciones uses

Con esto le estas diciendo a Delphi que dentro de tu programa se usara determinada configuracion pero que NO modifique la configuracion regional del equipo

Esa configuracion es solo visible por tu programa,

Última edición por AgustinOrtu fecha: 21-08-2015 a las 21:48:16.
Responder Con Cita
  #4  
Antiguo 21-08-2015
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Concuerdo con lo que explica AgustinOrtu.

Me a tocado ver aplicaciones que al intentat abrirlas, solicita al usuario cambiar estos parámetros en forma manual, de lo contrarió, no se abre.

Peor cuando esta instalado junto a otra aplicación que hace la misma burrada de cambiar los parámetros regionales del sistema (aló Softland) y ambos usan sistemas distintos. Es decir, no se pueden usar ambos al mismo tiempo.
Responder Con Cita
  #5  
Antiguo 22-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por AgustinOrtu Ver Mensaje
NO modifiques la configuracion regional del sistema operativo en ningun programa que hagas
Esa configuracion global esta asi porque el usuario lo seteo de esa forma por algun motivo x (llamese x un programa o servicio que si no tiene esa configuracion no funciona bien, o porque cuando usa el excel le gusta que el separador de decimales sea '.' y no '.' entre otras muchisimas cosas)
Cita:
Empezado por MAXIUM Ver Mensaje
Concuerdo con lo que explica AgustinOrtu.
Me a tocado ver aplicaciones que al intentat abrirlas, solicita al usuario cambiar estos parámetros en forma manual, de lo contrarió, no se abre.
Peor cuando esta instalado junto a otra aplicación que hace la misma burrada de cambiar los parámetros regionales del sistema (aló Softland) y ambos usan sistemas distintos. Es decir, no se pueden usar ambos al mismo tiempo.

Por supuesto, hay que respetar siempre las configuraciones elegidas por los usuarios: configuración regional, colores, tamaños de letras, pantalla, etc. NUNCA debemos cambiar la configuración, sino adaptarnos a ella.
Responder Con Cita
  #6  
Antiguo 22-08-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
AgustinOrtu,

Cita:
Empezado por AgustinOrtu
...Los programas bien diseñados no dependen de la configuración regional del sistema operativo para funcionar bien...Los programas bien diseñados formatean la información al formato mas adecuado/necesario...


Nelson.
Responder Con Cita
  #7  
Antiguo 22-08-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola giulichajari.
Cita:
Empezado por giulichajari Ver Mensaje
...
y para que no se vea en euros y con el signo peso ($) como hago?
Si, recuerdo el hilo. Pero aquél era un caso muy diferente, donde estaba definido el punto "." para ambos separadores (miles y decimal).

Y también recuerdo mi advertencia final:
Cita:
De todos modos es una forma muy frágil de obtener el valor ya que depende de las configuraciones locales de los equipos en que funciona la aplicación.
De todos modos, si no me perdí de algo, creo giulichajari no manifestó la intención de realizar un cambio en la configuración regional...

Para la consulta actual acerca de signos euro/peso, podes jugar con las variables CurrencyString y CurrencyFormat, la primera de las cuales ya te la indicó AgustinOrtu.

Ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Clear;
  // Euro
  CurrencyString := '€'; // Símbolos: $, kr, £, ₤, R$, etc, ...
  CurrencyFormat := 3;   // un espacio despues del monto
  Memo1.Lines.Add(CurrToStrF(1234, ffCurrency, 0));
  // Peso
  CurrencyString := '$';
  CurrencyFormat := 2;   // un espacio delante del signo
  Memo1.Lines.Add(CurrToStrF(1234, ffCurrency, 0));
  // Euro (otro)
  CurrencyString := 'euros.'; // nombre
  CurrencyFormat := 3;
  Memo1.Lines.Add(CurrToStrF(1234, ffCurrency, 0));
  // Peso (otro)
  CurrencyString := 'pesos.';
  CurrencyFormat := 3; 
  Memo1.Lines.Add(CurrToStrF(1234, ffCurrency, 0));
end;
Muestra:


Casi me olvido... CurrToStrF


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 23-08-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Gracias..

He probado todo y funciona correctamente..
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
Cambio de resolución entre xp y win7 kambiz Varios 2 16-03-2012 21:03:17
Como Imprimir varia Etiquetas en una hoja afastos Impresión 3 29-06-2010 18:06:49
Currency to float david duarte Varios 2 14-11-2006 16:53:22
Error de Currency Epunamun OOP 2 05-12-2005 23:41:25
Problema con currency erfedecai C++ Builder 0 10-06-2004 11:49:19


La franja horaria es GMT +2. Ahora son las 01:24:58.


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