Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
3 / 3 / 0
Регистрация: 22.12.2013
Сообщений: 52
1

Контроль на ввод даты

24.05.2017, 17:53. Просмотров 1025. Ответов 11
Метки нет (Все метки)

Добрый день! Вопрос таков, нужно сделать контроль на ввод даты. Чтобы даты ранее 1950 года не вводились. Ввод даты осуществляется через маск эдит
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2017, 17:53
Ответы с готовыми решениями:

Нужно настроить ввод даты в delphi в dbGrid, в ручную через edit. Добавление новой даты.
Добрый день. Прошу о помощи. У меня на форме есть dbGrid. Мне нужно, чтобы третья колонка была...

Ручной ввод даты (автоподстановки, контроль правильности)
Товарищи! Пытаюсь сделать достойный ручной ввод даты (автоподстановки, контроль правильности). для...

Получить даты файлов за несколько дней и вывести в лог (контроль даты файлов)
Добрый день нужен батник следующего функционала: есть папка с 8-ю зип архивами (ежесуточный...

Запретить ввод даты в MaskedTextBox1 больше текущей даты
На форме MaskedTextBox1 с маской под короткую дату, то есть __.__.____ Как запретить ввод в это...

11
218 / 62 / 32
Регистрация: 23.05.2014
Сообщений: 612
24.05.2017, 21:26 2
Проверку включите. В дате типа стринг из маскедит обычно 10 символов. Можно тупо перевести последние 4 символа из маскедит в число и проверить на больше, меньше... Как вариант.
0
163 / 141 / 66
Регистрация: 05.06.2010
Сообщений: 632
24.05.2017, 21:47 3
Лучший ответ Сообщение было отмечено Karina2496 как решение

Решение

Можно так
Delphi
1
2
  if FormatDateTime('yyyy', StrToDate(MaskEdit1.Text)) <= FormatDateTime('yyyy', StrToDate('31.12.1949')) then
    ShowMessage('');
0
3 / 3 / 0
Регистрация: 22.12.2013
Сообщений: 52
24.05.2017, 22:58  [ТС] 4
Программа запустилась, но выскакивает сообщение
0
Миниатюры
Контроль на ввод даты  
163 / 141 / 66
Регистрация: 05.06.2010
Сообщений: 632
25.05.2017, 05:25 5
Корректно дату введите
0
3 / 3 / 0
Регистрация: 22.12.2013
Сообщений: 52
25.05.2017, 07:45  [ТС] 6
я только начинаю вводить любую цифру и он выдает мне эту ошибку
0
163 / 141 / 66
Регистрация: 05.06.2010
Сообщений: 632
25.05.2017, 08:08 7
А Вам точно нужна эта проверка на событии on change?
0
3 / 3 / 0
Регистрация: 22.12.2013
Сообщений: 52
25.05.2017, 14:33  [ТС] 8
Что-то об этом не подумала. А теперь такая проблема, сохраняю изменения, он выводит сообщение, но при этом изменения сохранились
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm7.Button3Click(Sender: TObject);
begin
close;
begin
 if FormatDateTime('yyyy', StrToDate(MaskEdit1.Text)) <= FormatDateTime('yyyy', StrToDate('31.12.1949')) then
    ShowMessage('');
    end;
    begin
form7.DBNavigator1.BtnClick(nbRefresh);
form7.DBNavigator2.BtnClick(nbRefresh);
end;
end;
0
1036 / 853 / 334
Регистрация: 08.12.2016
Сообщений: 3,283
25.05.2017, 14:36 9
Цитата Сообщение от Karina2496 Посмотреть сообщение
сохраняю изменения, он выводит сообщение, но при этом изменения сохранились
именно так в коде и написано.
0
3 / 3 / 0
Регистрация: 22.12.2013
Сообщений: 52
25.05.2017, 14:38  [ТС] 10
а как исправить?
0
1036 / 853 / 334
Регистрация: 08.12.2016
Сообщений: 3,283
25.05.2017, 14:41 11
Цитата Сообщение от Karina2496 Посмотреть сообщение
Button3
кто такой Button3? А если его не нажмут? К тому же здесь нет записи данных из MaskEdit1 в БД, поэтому этот код вообще ничего не делает, изменения вносятся где-то в другом месте.

Проверку на валидность сохраняемых данных надо делать в надлежащем месте. в OnBeforePost набора данных, например
1
1676 / 919 / 329
Регистрация: 29.05.2013
Сообщений: 4,301
25.05.2017, 14:53 12
Как я понял из темы, речь идет о внесении дынных в БД, тогда проверку внесенных данных лучше делать в событии OnBeforePost для датасета:
Delphi
1
2
3
4
procedure TForm7.AdoTable1BeforePost(DataSet: TDataSet);
begin
 if DataSet['ВашеПолеДаты'] < StrToDate('01.01.1950') then raise Exception.Create('Ошибка в дате');
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2017, 14:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Установка и контроль рабочей даты
День добрый! Пишу диплом тема &quot;учет основных средств&quot;, Delphi 6.0 + IB. Есть такой вопрос нужно...

Контроль за корректностным вводом даты рождения
надо поставить ограничение на дату рождения, не знаю как .Нужно чтобы не было 30 февраля, 31 апреля...

Контроль правильности ввода даты или числа
Создайте окна для ввода дат и чисел. При вводе правильной даты или числа, появляется окно сообщения...

Контроль ввода даты и выдача сообщения в случае ошибки неверного ввода
Здравствуйте! У меня есть такая вот форма(скрин ниже). Смысл в том, что если пользователь введет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.