![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть калькулятор перевода чисел из любой системы в любую. Необходимо сделать ограничение на этапе ввода в восьмеричной системе, в поле не должны вводиться 8 и 9. Как это реализовать, возможно ли это, помогите пожалуйста.
|
|
#2
|
||||
|
||||
|
Для эдита
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'7']) then Key :=#0; end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Aleks N. (29.11.2014)
| ||
|
#4
|
||||
|
||||
|
Её в семёрке нет
|
|
#5
|
|||
|
|||
|
Спасибо, но это немного не то что нужно. Если бы была задача перевода чисел только из одной системы в любую другую, то выше написанное помогло, но у меня их намного больше. Так что не знаю, придется делать отдельные поля для других систем? Программа же не может распознать сразу в какую и из какой системы будет производиться перевод.
Последний раз редактировалось Aleks N., 29.11.2014 в 20:16. |
|
#6
|
||||
|
||||
|
Вопрос ведь был про ограничение. Просто добавьте в квадратные скобки через запятую нужное, напр.
,'A','B','C','D' ,#8 (бекспейс) etc. З.Ы. Посмотрите как организован системный калькулятор, там выбор необходимой системы счисления производится через радиобаттоны, самое лучшее пойти по такому же пути, тогда в зависимости от выбора можно менять условие фильтра при вводе, одного поля вполне достаточно Последний раз редактировалось Alegun, 29.11.2014 в 20:32. |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Aleks N. (29.11.2014)
| ||
|
#7
|
|||
|
|||
|
Спасибо, разобрался, через KeyPress реализовал.
Последний раз редактировалось Aleks N., 29.11.2014 в 22:30. |