Спасибо, уже разобрался. Может мое решение и не лучшее или даже плохое, но может кому-то (с такой же проблемой) поможет:
procedure TForm1.Edit1ChangeTracking(Sender: TObject);
var c1:string; lc1,lc11:integer;
begin
c1:=Edit1.Text;
lc1:=length(c1)-1;
lc11:=length(c1);
if c1<>'' then begin
if Edit1.Text[lc1]='.' then begin delete(c1, lc11, 1);
c1:=c1+',';
Edit1.Text:=c1;
end;
if not(CharInSet(Edit1.Text[lc1], ['0'..'9', ',', '-'])) then begin
delete(c1, lc11, 1);
Edit1.Text:=c1;
end;
end;
end;