RE:Relleno decimal con ceros
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;