Как проверить, не оставил ли пользователь TDateEdit пустым?

Я использую элемент управления TDateEdit в Lazarus и установил формат даты DMY. Итак, я вижу некоторые символы для пользователя, такие как '__/__/____', в поле ввода даты.

Меня беспокоит то, что я не хочу, чтобы пользователь оставлял это поле пустым, поэтому я пробую следующий код в качестве теста:

  if dtWeekEndingDate.Date = 0 Then
     begin
       Errors := true;
       showmessage ('blank');
     end;

Код, кажется, делает то, что я хочу, но я не уверен, что это правильно.

Является ли вышеуказанный метод правильным способом проверки неустановленной или не введенной даты? Я использовал свойство .Text, но оно не работает.

Спасибо!


person itsols    schedule 13.09.2013    source источник


Ответы (1)


Да, если вы можете считать 0 (ноль = 30.12.1899 00:00) «пустой» датой в вашем приложении. Вы можете увидеть это, просто выведя «пустой» элемент управления TDateEdit:

ShowMessage(FormatDateTime('DD MM YYYY hh:nn',DateEdit1.Date));

Если эта дата является действительной и возможной записью в вашем случае, используйте событие onChange, чтобы установить логическое значение, что что-то введено, или напрямую проверить и обработать другое свойство элемента управления TDateEdit:

DateEdit1.Text

Конечно, вы можете использовать некоторые хорошие компоненты, уже решающие такие «проблемы», как:

person Vladimir    schedule 19.09.2013
comment
У вас есть точка там. Мне действительно не нужна эта дата (1899), но это означает, что проверка даты на 0 не является хорошей идеей. Вместо этого я думаю, как вы сказали, лучше проверить свойство Text. И я не заинтересован в использовании дополнительных элементов управления по двум причинам. Во-первых, лицензирование и во-вторых размер кода. Как бы то ни было, я борюсь за то, чтобы размер кода был небольшим :/ - person itsols; 19.09.2013