Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 5
1

Проверка MaskEdit на ввод полной даты

09.11.2016, 20:30. Показов 2550. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Вопрос по поводу проверки введена ли полная дата в MaskEdit:

Есть MaskEdit с маской на дату
C++
1
MaskEdit1->EditMask = "!00/00/0000;1;_";
Есть проверка на пустоту MaskEdit'а:
C++
1
 if(MaskEdit1->Text!="  .  .    ")
Но как сделать проверку введены ли и день, и месяц, и год?

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2016, 20:30
Ответы с готовыми решениями:

Проверка ввода даты в MaskEdit
здравствуйте, скажите, если я ввожу в поле MaskEdit ,например, 11.12.13, то всё работает, а если...

Как контролировать правильный ввод даты в maskedit?
Как мне контролировать правильный ввод даты в maskedit? Ставлю маску следующего...

Проверка на корректный ввод даты
помогите придумать исключения для даты class date { public double x { get; set; } ...

Хитрая проверка на ввод даты
Всем здравствуйте. Помогите, пожалуйста с таким моментом. Занялся написанием приложения, которое...

4
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
09.11.2016, 23:54 2
C++
1
TryEncodeDate()
1
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 5
10.11.2016, 00:44  [ТС] 3
Можно подробнее как использовать эту функцию?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
10.11.2016, 10:18 4
Лучший ответ Сообщение было отмечено Voteban как решение

Решение

Voteban, а можно подробнее, как именно ты собрался проверять частично введенную дату, если у тебя в маске стоят нули? Как только ты попытаешься при частично введенной дате снять фокус с контрола - тут же вылетит исключение.

Я бы просто переопределил метод ValidateError, который вызовется в случае, если данные введены не полностью, и в нем делал все, что нужно: предупреждал бы пользователя, возвращал фокус на тот же компонент... Проще всего это сделать классом-перехватчиком:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// в header-файле, перед классом формы:
namespace MaskEdit_Validate
{
    class TMaskEdit : public Mask::TMaskEdit
    {
    protected:
        virtual void __fastcall ValidateError(void)
        {
            ShowMessage("Oops..."); // ну, или добавь, что тебе нужно делать при неполном вводе данных
        }
    };
}
#define TMaskEdit MaskEdit_Validate::TMaskEdit
 
// тут класс формы, дальше - без изменений
class TForm1 : public TForm
// ...
2
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 5
10.11.2016, 18:25  [ТС] 5
Цитата Сообщение от volvo Посмотреть сообщение
Я бы просто переопределил метод ValidateError, который вызовется в случае, если данные введены не полностью, и в нем делал все, что нужно: предупреждал бы пользователя, возвращал фокус на тот же компонент... Проще всего это сделать классом-перехватчиком:
Огромное спасибо!!!
Это полностью решило мою проблему, а так же поможет в последующих задачах!
0
10.11.2016, 18:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2016, 18:25
Помогаю со студенческими работами здесь

ввод даты дд.мм.гггг и проверка существует ли она ( например 30 февраля )
помогите с кодом , ни как не разберусь а завтра экзамен (( Вводим дд.мм.гггг с помощью...

Вывод даты из MaskEdit в Memo
У меня имеется MaskEdit с маской даты. Ввожу я какую нибудь дату. Нажимаю кнопку ДОБАВИТ. Дата...

Ввод Hex-символов через MaskEdit
Следующая конструкция позволяет вводить Hex символы вида 0F FE A0... в поле MaskEdit: procedure...

Как в maskedit с форматом даты увеличить ее на год, месяц или день?
Есть маскэдит. Маска ввода Дата. Надо чтобы при нажатии на кнопку эта дата увеличивалась. Надо...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru