Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
simbolo moneda en formatfloat

Buenas otra ves preguntando alguna que otra cosa..
Esta vez quería preguntar como puedo hacer para que aparezca el símbolo $ ó S/. hago un edit1.text := FormatFloat('#,##0.00', valor); me formatea el valor que deseo, por ejemplo 5.50 pero quiero hacer que este tenga el valor mas el símbolo S/. 5.50 una ves cuando lo hice en el campo display format le puse esto s/'.' #,##0.00 y todos los campos tenían el símbolo pero esta vez no es en la base de datos solo superficialmente en los edits normales como lo haria asi ?
FormatFloat('s/'.' #,##0.00', valor)

gracias
Responder Con Cita
  #2  
Antiguo 23-10-2010
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.

¿ Y no te sirve un TMaskEdit, iniciándolo así ?

Código Delphi [-]
   MaskEdit1.EditMask:= 's/.#,##0.00;1; ';

Saludos.
Responder Con Cita
  #3  
Antiguo 23-10-2010
Avatar de Young
Young Young is offline
Miembro
 
Registrado: abr 2006
Ubicación: San Felipe, Chile
Posts: 86
Poder: 19
Young Va por buen camino
Simplemente FormatFloat( '$ ,0.00', 12345.67 ).

Saludos.

Última edición por Young fecha: 23-10-2010 a las 03:59:50.
Responder Con Cita
  #4  
Antiguo 23-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
no funciona por el punto del simbolo s/. da error
otra idea ?
gracias
Responder Con Cita
  #5  
Antiguo 23-10-2010
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 16
LoPiTaL Va por buen camino
Tal vez es una tontería lo que voy a decir... pero, ¿por qué no haces esto?

edit1.text := FormatFloat('#,##0.00', valor)+'$';

ó

edit1.text := '$'+FormatFloat('#,##0.00', valor);

Un saludo,
LoPiTaL
Responder Con Cita
  #6  
Antiguo 23-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
eso ya lo habia intentado hacer, pero luego cuando intento calcular ese edit mas otro edit me dice que no es un floating point value... porque esta el simbolo

alguna otra idea mas ? thanks
Responder Con Cita
  #7  
Antiguo 24-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
amigos ayudenme es urgente poner este simbolo y no me sale si lo concateno con + al calcula os dos edits me dicen que no es un float
Responder Con Cita
  #8  
Antiguo 24-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
nadie ? - me ayudan ?
Responder Con Cita
  #9  
Antiguo 24-10-2010
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.

Probá si te sirve este código:
Código Delphi [-]
type
  TForm1 = class(TForm)
    Button1: TButton;
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure MaskEdit2Exit(Sender: TObject);
  private
    FNum1,FNum2: Double;
  public
  end;

var
  Form1: TForm1;

implementation{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  // dado el formato que imponés en la máscara, esta línea es
  // necesaria si tenés ',' como separador decimal
  DecimalSeparator:= '.';
end;

procedure TForm1.MaskEdit1Exit(Sender: TObject);
var
  Cad: string;
begin
  with Sender as TMaskEdit do
   Cad:= Text;
  Delete(Cad,Pos('$',Cad),1);
  Delete(Cad,Pos(',',Cad),1);
  FNum1:= StrToFloat(Cad);
end;

procedure TForm1.MaskEdit2Exit(Sender: TObject);
var
  Cad: string;
begin
  with Sender as TMaskEdit do
   Cad:= Text;
  Delete(Cad,Pos('$',Cad),1);
  Delete(Cad,Pos(',',Cad),1);
  FNum2:= StrToFloat(Cad);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(Format('%f %f %f',[FNum1, FNum2, FNum1 + FNum2]));
end;
...

Saludos.
Responder Con Cita
  #10  
Antiguo 25-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
gracias
Responder Con Cita
  #11  
Antiguo 25-10-2010
elarys elarys is offline
Miembro
 
Registrado: abr 2007
Posts: 94
Poder: 18
elarys Va por buen camino
no recuerdo bien, tengo ese codigo en casa,
estoy en el trabajo, pero yo algo parecido a esto.

Código Delphi [-]
  edit1.text := FormatString('m', valor);

asi te muestra directamente decimales y el simbolo monetario,
que tengas por defecto configurado en tu windows

no recuerdo si era m o n...
cuando llegue a casa y verifique el codigo,
te confirmo porque estoy suponiendo
Responder Con Cita
  #12  
Antiguo 26-10-2010
elarys elarys is offline
Miembro
 
Registrado: abr 2007
Posts: 94
Poder: 18
elarys Va por buen camino
no estaba tan equivocado, mira esta pagina
Responder Con Cita
  #13  
Antiguo 26-10-2010
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
Cita:
Empezado por elarys Ver Mensaje
no estaba tan equivocado, mira esta pagina
Hola elarys.

Tu propuesta para mostrar el formato es correctísima al igual que la de LoPiTaL.

Pero el problema que expone Rofocale es:
Cita:
eso ya lo habia intentado hacer, pero luego cuando intento calcular ese edit mas otro edit me dice que no es un floating point value... porque esta el simbolo
Cualquier formato no numérico que agregues en la propiedad Text del TEdit, la tenés que quitar al intentar convertir a número.
Esto implica que tenés que trabajar el Text del Edit aparejado con una variable numérica si no queres perder el formato.

Sugerí el MaskEdit por que reduce las comprobaciónes de ingreso al ajustarse este a una máscara. Pero puede hacerce con un Edit.

Ejemplo:
Código Delphi [-]
...
procedure TForm1.EditExit(Sender: TObject);
begin
  with (Sender as TEdit) do
  begin
    if Name = 'Edit1' then
     FNumEd1:= StrToFloat(Text)
    else
     FNumEd2:= StrToFloat(Text);
    Text:= Format('%m',[StrToFloat(Text)]);
  end;
end;

procedure TForm1.btSumarClick(Sender: TObject);
begin
  ShowMessage(FloatToStr(FNumEd1+FNumEd2));
end;
...

Ahora bién este código, aparentemente sencillo usando un TEdit, se complicaría bastante con las comprobaciones adicionales
que impone el formato solicitado por Rofocale: '$' delante, signo (-), digitos(0..9), ',' como separador de miles, y '.' de decimales.



Saludos.
Responder Con Cita
  #14  
Antiguo 26-10-2010
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
gracias me sirvio mucho sus respuestas
Responder Con Cita
  #15  
Antiguo 26-10-2010
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 16
LoPiTaL Va por buen camino
Hola de nuevo. Yo soy relativamente nuevo en las APIs de Delphi, por eso componentes del estilo de MaskEdit no suelo usarlos (sencillamente porque desconozco su existencia, o porque cuando se me plantea un problema no pienso en ellos y decido implementarlo yo digamos que "a pelo").
En este caso me parece bastante sencillo, por ejemplo, la solución que comentas tú, de mantener dos variables numéricas y mostrar dos cadenas diferentes de texto.
Para sumar, evidentemente sumas las variables numéricas pero muestras el texto que quieras, con el $,%, €, etc...
Si en algún momento deseases cosas más avanzadas, p. ej. al entrar en el TEdit quitar el texto sobrante para poder escribir sólo el número y al salir reescribirlo todo, te es bastante sencillo hacerlo con las 4 variables anteriores y los eventos que el componente te proporciona. Incluso podrías pensar en derivar del TEdit e implementar éstas en la nueva clase.

Cita:
Ahora bién este código, aparentemente sencillo usando un TEdit, se complicaría bastante con las comprobaciones adicionales
que impone el formato solicitado por Rofocale: '$' delante, signo (-), digitos(0..9), ',' como separador de miles, y '.' de decimales.
No entiendo qué quieres decir con esto... Tienes las variables separadas, puedes darle el formato que quieras:
showmessage('Mi variable que creo que es un dólar $'+inttostr(FVar1+FVar2)+' o podrían ser € no lo sé.....');

Un saludo,
LoPiTaL
Responder Con Cita
  #16  
Antiguo 26-10-2010
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
Cita:
Empezado por LoPiTaL Ver Mensaje
No entiendo qué quieres decir con esto... Tienes las variables separadas, puedes darle el formato que quieras:
showmessage('Mi variable que creo que es un dólar $'+inttostr(FVar1+FVar2)+' o podrían ser € no lo sé.....');

Un saludo,
LoPiTaL
Las validaciones de lo que se ingresa en el TEdit. Echo que lamentablemente sucede antes de que puedas hacer:
Código Delphi [-]
    FloatToStr(FVar1 + FVar2);


Saludos.

Última edición por ecfisa fecha: 26-10-2010 a las 21:19:54.
Responder Con Cita
Respuesta



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
Simbolo moneda sizne Impresión 1 08-05-2010 01:36:21
Inversa de FormatFloat MaMu Varios 1 05-09-2008 14:55:05
FormatFloat mjjj Varios 3 10-06-2008 20:35:39
Problemas con FormatFloat jsanchez OOP 2 23-12-2003 19:18:17


La franja horaria es GMT +2. Ahora son las 01:30:14.


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