westpine |
Отправлено: 23.07.2004, 00:43 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6

|
Всем доброго времени суток. Вопрос такой: как сделать поле числового ввода, то есть так что-бы в поле ввода Edit можно было вводить только цифры и точку, и что бы при этом выравнивание было на правую сторону ячейки? Всем заранее спасибо |
 |
PeroManiak |
Отправлено: 23.07.2004, 01:47 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 71

|
ИМХО, OnKeyPress и там проверяешь, что было нажато
|
 |
Daan |
Отправлено: 23.07.2004, 07:31 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 62

|
http://www.sources.ru/builder/faq/045.html
CODE |
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; // не цифра
|
Отредактировано Admin — 27/07/2004, 11:18 |
 |
telepath |
Отправлено: 23.07.2004, 11:38 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 132

|
Попробуй MaskEdit |
 |
PeroManiak |
Отправлено: 24.07.2004, 00:11 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 71

|
telepath, кажется, попросили сделать это для TEdit, а?
Навеное, westpine хочет именно через Edit, так зачем навязывать?
|
 |
Oper01 |
Отправлено: 24.07.2004, 23:38 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 145

|
Чтобы в поле Edit только цифры вводились, напиши в обработчике события OnKeyPress
CODE |
Set <char, '0', '9'> Digit;
Digit << '0' << '1' << '2' << '3' << '4' << '5' << '6' << '7' << '8' << '9';
if (! Digit.Contains(Key))
Key = 0;
| |
 |
westpine |
Отправлено: 26.07.2004, 18:23 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6

|
Усё работает!! Класс, спасибо. |
 |
Deem |
Отправлено: 27.07.2004, 10:01 |
|

Мастер участка
Группа: Участник
Сообщений: 327

|
В RxLib есть CurrencyEdit. Это то, что нужно. И выравнивание, и точка (можно и без, а можно и запятую), и кол-во цифр после точки. В отличие от MaskEdit, CurrencyEdit очень естественно работает.
|
 |
Gedeon |
Отправлено: 28.07.2004, 19:50 |
|

Ветеран
Группа: Модератор
Сообщений: 1742

|
Посмотрите в форуме в топике текст в трэй я выложил три компонента, один из них TNumericEdit позволяет вводить только числа, можно только целые/дробные, отрицательные/положительные, умеет сам определять знак разделитееля в системе и ставит его вместо . или ,
|
 |