Procedimento para serem usados em um componente Edit para evitar a digitação de virgula e só aceitar números.
No seu componente Edit coloque os dois códigos nos eventos OnChange e OnKeyPress.
procedure Tfrm_formulario.edt_valorChange(Sender: TObject);
var
s:string;
v:double;
I:integer;
begin
//1º Passo : se o edit estiver vazio, nada pode ser feito.
If (edt_valor.Text = emptystr) then
edt_valor.Text := '0,00';
//2º Passo : obter o texto do edit, SEM a virgula e SEM o ponto decimal:
s := '';
for I := 1 to length(edt_valor.Text) do
if (edt_valor.text[I] in ['0'..'9']) then
s := s + edt_valor.text[I];
//3º Passo : fazer com que o conteúdo do edit apresente 2 casas decimais:
v := strtofloat(s);
v := (v /100); // para criar 2 casa decimais
//4º Passo : Formata o valor de (V) para aceitar valores do tipo 0,10.
edt_valor.text := FormatFloat('###,##0.00',v);
edt_valor.SelStart := 0;
end;
procedure Tfrm_formulario.edt_valorKeyPress(Sender: TObject;
var Key: Char);
begin
if NOT (Key in ['0'..'9', #8, #9, #13]) then
begin
key := #0;
end;
//Função para posicionar o cursor sempre na direita
edt_valor.selstart := Length(edt_valor.text);
end;