Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Sumar edits e ir actualizando (https://www.clubdelphi.com/foros/showthread.php?t=87157)

ecfisa 30-12-2014 22:48:40

Hola giulichajari.

Para saber la definicion de los separadores que tenes configurada, sería útil si copiaras desde el Memo (y pegaras aqui) el resultado de ejecutar este código:
Código Delphi [-]
...
begin
  Memo1.Font.Name:= 'Currier';
  Memo1.Text:= Format('S. mil: %s %sS. dec: %s',
    [ThousandSeparator, #$A#$D#$A#$D, DecimalSeparator]);
end;

Saludos :)

giulichajari 01-01-2015 00:32:15

Cita:

Empezado por ecfisa (Mensaje 487195)
Hola giulichajari.

Para saber la definicion de los separadores que tenes configurada, sería útil si copiaras desde el Memo (y pegaras aqui) el resultado de ejecutar este código:
Código Delphi [-]
...
begin
  Memo1.Font.Name:= 'Currier';
  Memo1.Text:= Format('S. mil: %s %sS. dec: %s',
    [ThousandSeparator, #$A#$D#$A#$D, DecimalSeparator]);
end;

Saludos :)

Agrego un Memo y le paso la suma de los valores?Probe hacer el edit y usa el punto para los dos casos. Como se cambia esto?

ecfisa 01-01-2015 10:26:00

Hola giulichajari.
Cita:

Empezado por giulichajari (Mensaje 487210)
Probe hacer el edit y usa el punto para los dos casos. Como se cambia esto?

Si usas el punto tanto para separador de miles como de decimales, habría que hacer un pequeño cambio a la función anterior:
Código Delphi [-]
...
{ definir punto como separador de miles y decimales }
procedure TuForm.FormCreate(Sender: TObject);
begin
  DecimalSeparator := '.';
  ThousandSeparator:= '.';
  Application.UpdateFormatSettings:= False;
end;

function UnFormatCurr(const CurrValue: string): string;
begin
   Result:= CurrValue;
   Result:= StringReplace(Result, '$', '', [rfReplaceAll]);
   Result:= StringReplace(Result, '.', '', []); // <<-- cambio
end;

Saludos:)

giulichajari 01-01-2015 11:12:42

No seria:

Código Delphi [-]
procedure TuForm.FormCreate(Sender: TObject);
begin
  DecimalSeparator := ',';{coma para decimal}
  ThousandSeparator:= '.';
  Application.UpdateFormatSettings:= False;
end;

ecfisa 01-01-2015 22:45:53

Hola giulichajarí
Cita:

Empezado por giulichajari (Mensaje 487213)
No seria:

Código Delphi [-]
procedure TuForm.FormCreate(Sender: TObject);
begin
  DecimalSeparator := ',';{coma para decimal}
  ThousandSeparator:= '.';
  Application.UpdateFormatSettings:= False;
end;

No si es como comentas en este mensaje:
Cita:

Empezado por giulichajari (Mensaje 487210)
Agrego un Memo y le paso la suma de los valores?Probe hacer el edit y usa el punto para los dos casos. Como se cambia esto?

En ese caso el signo "$" y el primer "." impiden el formato al no coincidir con el formato establecido.

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. Sería mucho mejor tener almacenado el valor que mostras en el Edit en una variable (privada al formulario o global a la unidad) y te evitas todo este lío.

Saludos :)


La franja horaria es GMT +2. Ahora son las 16:39:15.

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