Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   formato de un Tedit o Tlabel (https://www.clubdelphi.com/foros/showthread.php?t=58193)

mjjj 11-07-2008 18:05:21

formato de un Tedit o Tlabel
 
Hola, siempre he tenido un problema, que lo he podido solucionar pero es muy tedioso.

Tengo una variable tipo double, con la cual hago distintos calculos, pero al momento de presentar el resultado en pantalla, utilizo el siguiente codigo.

Código Delphi [-]
edit1.text:=formafloat('#,#.##', variable);  ó
label1.caption:=formafloat('#,#.##', variable);

el usuario observa la informacion con un formato facil de leer.
El problema se presenta cuando necesito utilizar esa información, es decir, tomar el valor del Tedit y reaizar otro tipo de calculo, el cual tiene los punto sseparadores de miles incluidos, y no es reconocido como una variable double.

No se si se entinde mi problema... a lo mejor la solucion es utilizar otro componente (que yo no conozco), para mostrar esta informacion en pantalla.

Bueno, se los dejo a ver si me pueden ayudar.

Saludos

Fenareth 11-07-2008 18:24:47

Yo tuve problemas similares al querer darle formato tanto a TLabel como a TEdits y opté por algo sencillo:

En una variable guardo el valor con el que haré los cálculos que necesito y el formato se lo aplico a otra variable auxiliar...

De esta manera no tengo que lidiar con que no reconozca el valor tomado por la variable con la que haré algún cálculo. En mi caso una variable auxiliar fue suficiente.

Saludos, :)

coso 11-07-2008 18:55:06

Para devolver un numero cuando hay separador de miles...

Código Delphi [-]
function SacarFormato(s : string;sep_m : char; sep_f : char) : double;
begin
            SacarFormato := 0; 
 
            s := StringReplace(s,sep_m,'',[rfReplaceAll, rfIgnoreCase]);
            s := StringReplace(s,sep_f,',',[rfReplaceAll, rfIgnoreCase]);     

            try
            SacarFormato := strtofloat(s);
            except
            raise exception.Create('error en SacarFormato.StrFloat');
            end;
end;


en tu caso, la llamaria asi :
Código Delphi [-]
       ...
       double b := SacarFormato('1.323,29','.',',');
       ...


EDITO : ups, q me olvido argumentos.


saludos


La franja horaria es GMT +2. Ahora son las 03:26:25.

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