Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поле типа дата в DBGrid / 14 сообщений из 14, страница 1 из 1
24.05.2018, 00:21
    #39649076
dead end
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
Добрый вечер,подскажите, пожалуйста,как отловить ошибку в ячейке DBGrid на неправильный ввод даты? Какое событие обрабатывать? Пробовал через beforepost и onvalidate, ничего не выходит(
Код: pascal
1.
2.
3.
try TryStrToDate(family.FieldByName('ДатаРождения').Value, dt) 
except  showMessage('Некорректная дата!');
end;
...
Рейтинг: 0 / 0
24.05.2018, 00:43
    #39649080
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
dead endПробовал через beforepost и onvalidate, ничего не выходит(

Значит плохо пробовал. Читай справку по OnValidate внимательно. Приведённый код неправильный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.05.2018, 01:03
    #39649084
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
Без try..except, просто
Код: pascal
1.
2.
if not TryStrToDate() then
  ShowMessage
...
Рейтинг: 0 / 0
24.05.2018, 11:40
    #39649269
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
YuRockБез try..except

Без ShowMessage, ибо
документацияTo reject the current value of the field from the OnValidate event
handler, raise an exception.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.05.2018, 12:44
    #39649350
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
Dimitry SibiryakovYuRockБез try..except

Без ShowMessage
Да, конечно
...
Рейтинг: 0 / 0
24.05.2018, 12:47
    #39649354
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
dead end,

Я у себя неверный ввод ловлю полями набора, вот недавно было: можно было в гриде набрать значение больше чем integer и софт вываливался с неприятным исключением. Добавил в набор все поля выборки, в одном из полей прописал в OnSetText:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TForm8.JvMemoryData1JvBValueSetText(Sender: TField; const Text: string);
var
 i: integer;
begin
 TryStrToInt(Text, i);
 i := MinMax(0, 20000, i);
 Sender.AsInteger := i;
end;
...
Рейтинг: 0 / 0
24.05.2018, 13:09
    #39649373
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
makhaonЯ у себя неверный ввод ловлю полями набора, вот недавно было: можно было в гриде набрать значение больше чем integer и софт вываливался с неприятным исключением. Добавил в набор все поля выборки, в одном из полей прописал в OnSetText:Ой вредный подход! Нельзя так. Если человек ошибается - то надо ему сообщить, а не по тихому подсовывать левое значение
...
Рейтинг: 0 / 0
24.05.2018, 13:29
    #39649393
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
white_niggerЕсли человек ошибается - то надо ему сообщить, а не по тихому подсовывать левое значение

Ещё лучше - не дать ему ошибиться. Для чего есть маски ввода и ограничения в спинконтролах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.05.2018, 13:31
    #39649396
dead end
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
спасибо всем большое)сам разобрался)
...
Рейтинг: 0 / 0
24.05.2018, 13:41
    #39649415
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
white_nigger,

ShowMessage можно добавить по желанию.

авторДля чего есть маски ввода и ограничения в спинконтролах.

в гриде не очень поограничиваешь, увы. в едитах, конечно, просто запрещаю набирать не то.
...
Рейтинг: 0 / 0
24.05.2018, 15:56
    #39649500
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
Dimitry SibiryakovЕщё лучше - не дать ему ошибиться. Для чего есть маски ввода и ограничения в спинконтролах.Лучше. Но не всегда возможно
makhaonв гриде не очень поограничиваешьГрид - гриду рознь...
...
Рейтинг: 0 / 0
24.05.2018, 16:56
    #39649520
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
white_niggerЛучше. Но не всегда возможно

Да, иногда лень побеждает программиста и форма редактирования документа накидывается
тяп-ляп мышкой с использованием TDbEdit вместо TDateTimePicker. Но чья это проблема?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.05.2018, 17:08
    #39649524
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
Dimitry Sibiryakovwhite_niggerЛучше. Но не всегда возможно

Да, иногда лень побеждает программиста и форма редактирования документа накидывается
тяп-ляп мышкой с использованием TDbEdit вместо TDateTimePicker. Но чья это проблема?..


Как это чья? Пользователя конечно
...
Рейтинг: 0 / 0
24.05.2018, 17:37
    #39649534
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поле типа дата в DBGrid
Dimitry SibiryakovДа, иногда лень побеждает программиста и форма редактирования документа накидывается
тяп-ляп мышкой с использованием TDbEdit вместо TDateTimePicker. Но чья это проблема?..Ах, если б всё было так просто!...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поле типа дата в DBGrid / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]