RE:Duda sobre un EDIT para campo numerico
Hola:
Puedes buscar algún edit que solo admita números ya te da el trabjajo ya hecho.
Si no, pones en el evento OnCreate de la aplicación:
DecimalSeparator := '.';
y en el evento OnKeyPress del edit:
procedure TFEntra.Edit1KeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números y punto
if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then Key := #0;
//controlar entrada un solo punto decimal
for i := 1 to length(Edit1.Text) do
if ( copy(Edit1.Text,i,1) = '.' ) and not ( StrScan('.', Key) = nil ) then Key := #0;
end;
Así solo podrás meter decimales tipo 1.34
.
.
Si quieres la coma como separador decimal, pero poder usar el punto del teclado numérico a la hora de teclear el decimal pones
al principio
DecimalSeparator := ',';
y en el evento OnKeyPress del edit:
procedure TFContabilidad.ECantidadKeyPress(Sender: TObject; var Key: Char);
var
i: integer;
begin
//controlar entrada solo números y punto
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(ECantidad.Text) do
if ( copy(ECantidad.Text,i,1) = ',' ) and not ( StrScan(',', Key) = nil ) then Key := #0;
end;
para decimales tipo 1,45
Suerte