Borland C++ Builder FAQ
составлен по материалам форума
на sources.ru
if ((Key >= '0') && (Key <= '9')) {} // цифры else if (Key == 8) {} // <- else if ((Key == '.') || (Key == ',')) // запятая { if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // если запятая уже есть Key = 0; else // если ещё нет Key = DecimalSeparator; } else Key = 0; // не цифраP.S. DecimalSeparator - глобальная переменная - разделитель целой и дробной части.