Delphi - Relleno decimal con ceros

 
Vista:
sin imagen de perfil

Relleno decimal con ceros

Publicado por Dario (29 intervenciones) el 29/10/2010 02:35:29
Como hago para que cuando cargue un numero entero se rellene el mismo con 2 ceros como decimales. Ej. Cargo el número 100 y quiero q se rellene con ceros: 100,00
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Relleno decimal con ceros

Publicado por Ragaru (46 intervenciones) el 29/10/2010 09:41:36
Si el número va a quedar almacenado en un campo de una Tabla, en las
propiedad Display Fromat de dicho campo se pone #,##0.00 asi los numeros
quedan con la coma de milesy dos ceros si es un numero entero.
Si quieres que aprezcan en un Edit al que previamente has introducido por
ejemplo 100 sigo el siguiente procedimiento :
Se define un campo Campo1 como integer y otro como Campo2. Real

Se hace Campo1 := Al StrToInt(Edit1.Text) * 100 con lo que resultaria que campo
Campo1 tendria 10000.
A continuación se hace Campo2 := Campo1/100 con lo que Campo2 tendría
100,00 y, por último se hace Edit1.Text := FormatFloat('#,##0.00', Campo2).

Después de estas operaciones, en el Edit1.Text tienes 100,00.

Quizás haya un procedimiento más expeditivo y si algún otro compañero te
contesta, como diariamente veo este foro, aprenderé algo nuevo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Relleno decimal con ceros

Publicado por Eva (484 intervenciones) el 29/10/2010 20:16:54
Para almacenarlo en un campo bien, pero para visualizarlo en un edit es suficiente con esta linea en el evento OnExit del edit

procedure TForm1.Edit1Exit(Sender: TObject);
begin
Edit1.Text := FormatFloat('#,###,##0.00',StrToFloat(Edit1.Text));
end;

..........

y para controlar lo que se entra

Se pone en el evento OnKeyPress del Edit

Esto controla la entrada de solo números, de una sola coma, y cambia el punto decimal por coma

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números
if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then Key := #0;
//cambiar punto decimal por coma
if key = '.' then key := ',';
//controlar entrada una sola coma
for i := 1 to length(Edit1.Text) do
if ( copy(Edit1.Text,i,1) = ',' ) and not ( StrScan(',', Key) = nil ) then Key := #0;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar