103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
|
1 | |
Ограничение на ввод даты15.04.2015, 14:03. Показов 2000. Ответов 19
Метки нет (Все метки)
Есть поле edit1, куда я ввожу год. Как сделать ограничение, чтобы ввести можно было только 1900-2015 года?
0
|
15.04.2015, 14:03 | |
Ответы с готовыми решениями:
19
Ограничение на ввод в Edit Ограничение на ввод в StringGrid Ограничение на ввод в одном столбце StringGrid Ограничение на ввод числа в ячейку stringgrid |
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
|
15.04.2015, 15:55 [ТС] | 3 |
Сообщений никаких не должно быть, нужно чтобы сразу, при вводе были такие рамки
0
|
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
15.04.2015, 15:58 | 4 |
Т.е. как только пользователь ввел в эдит первую цифру (допустим 1) его сразу убивать? Ведь 1 меньше чем 1900.
1
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
|
15.04.2015, 16:13 [ТС] | 5 |
Ну зачем же убивать сразу:d Можно как-то сделать границу для каждой позиции? Т.е допустим 1 цифра может быть либо 1, либо 2, вторая-либо 9, либо 0 и тд
0
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
||||||
15.04.2015, 20:14 [ТС] | 7 | |||||
А как можно задать ограничение посимвольно? Вот так?
0
|
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,252
|
||||||
15.04.2015, 20:18 | 8 | |||||
1
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
||||||
15.04.2015, 20:32 [ТС] | 9 | |||||
0
|
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,252
|
||||||
15.04.2015, 20:39 | 10 | |||||
1
|
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
|
15.04.2015, 22:35 | 11 |
А тебе случайно не проще ComboBox кинуть, при создании формы заполнить его в цикле и не городить ни чего с эдитами.
1
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
|
15.04.2015, 22:58 [ТС] | 12 |
Неа, нужно сделать именно через эдиты
Добавлено через 8 минут Не понимаю как сделать=\
0
|
15.04.2015, 23:01 | 13 |
чем ответ-то не подходит???
я могу допустить, что не понимаешь как в программе написать, но на русском человечьем алгоритм-то изобразить способен? ага, подумал, и добавил: ...и написать его тут.
1
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
|
15.04.2015, 23:06 [ТС] | 14 |
Через длину строки попробую
0
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
|
15.04.2015, 23:45 [ТС] | 16 |
Так это же для первого символа только,а как сделать условие для последующих?
0
|
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
|
16.04.2015, 00:16 | 17 |
Тут не все так просто, когда ты печатаеш втрой символ, нужноуже учесть каким был первый, если он был 1, то второй может быть только 9, если 2, то второй только нулем. Дальше условие еще сложнее.
Если первые две цифры 20 то третья можетпринять только 0 или 1, но код снова несможет отработать правильно так как ты не введеш две цифры одновременно.. Нужно еще одно условие типа счетчика на проверку сколько символов уже напечатано, это уже какая- то гора кода будет.. Ну или еще как вариант попробовать составить список TStringList от 1900 до 2015 и прогонять цикл таким образом- печатаеш первый символ- прогоняеш по списку первого символа из TStringList-а на поиск совпадений символа, второй печатаеш снова цикл, в результате гоняем цикл четыре раза, но это тоже какой-то велосипед.. Добавлено через 5 минут Есть еще вариант поработать в третью сторону, DateUtils с датами, а там уже сравнивать вышла ли дата за пределы или нет, но и в этом случае дата должна уже быть написана полностью перед сравнением.
1
|
103 / 90 / 75
Регистрация: 04.11.2011
Сообщений: 1,820
|
||||||
16.04.2015, 00:23 [ТС] | 18 | |||||
0
|
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
16.04.2015, 01:56 | 19 |
Вот она первая за сегодняшний день твоя дурацкая затея. Ничто не помешает пользователю скопировать откуда-то 1234 и вставить эту строку в эдит. Твоя проверка никак этому помешать не сможет.
P.S. Но уж если так хочется потренироваться в программировании, то твой код это не говнокод, это гораздо хуже. Это тот самый ужасный монстр, о котором говорил АА (ака Gunsmoker) в своей бессмертной саге об X,Y и Z. Отменять ввод символа в эдит можно гораздо проще и правильнее присвоив параметру Key в OnKeyPress значение #0, а удалить уже введенный последний в строке символ можно просто уменьшив на 1 длину строки.
0
|
16.04.2015, 09:22 | 20 |
0
|
16.04.2015, 09:22 | |
16.04.2015, 09:22 | |
Помогаю со студенческими работами здесь
20
Edit ограничение на ввод чисел от 0 до 255 Ограничение на ввод количество знаков в Edit (не более Х и не менее Х) Ограничение на ввод какой либо информации в поле Edit Нужно настроить ввод даты в delphi в dbGrid, в ручную через edit. Добавление новой даты. Ограничение на ввод символов (разрешить ввод только цифр) Запретить ввод даты в MaskedTextBox1 больше текущей даты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |