Можно ещё с помощью обработчика события OnKeyPress у TEdit разрешать и запрещать ввод любых символов.
Вот пример:
procedure TSelForm.Edit2KeyPress(Sender: TObject; var Key: Char);
const
Symbols: set of char=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', #8];
begin
If not (Key in Symbols) then
Key:=#0;
end ;
Есть ещё такой способ: StrToFloatDef(Edit1.Text, DefaultValue), здесь DefaultValue возвращается в случае ошибки. Но этот способ не всгда подходит.