Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DateTimePicker вешает комп, в чем причина. / 9 сообщений из 9, страница 1 из 1
26.07.2021, 16:43
    #40086278
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
TDateTimePicker после установки минимума и максимума minDate и MaxDate, где minDate = текущей даты, при выборе опять же текущей даты выдает ошибку. что Дата достигнута минимума. При том это не просто сообщение, а именно ошибка: EDateTimeError with message 'Date is less than minimum of 26.07.2021'
Ну по сути так быть не должно, особо внимания не обратил сразу, но примерно на третий выбор текущей даты моя операционка повесилась, после некоторых усилий, получил TimeOut от процесса.

Я пробовал использовать только Дату, и Дату вместе с Временем. Ошибка та же.

Начал смотреть, уходит в Vcl.ComCtrls

Код: plsql
1.
2.
3.
4.
5.
6.
7.
procedure TCommonCalendar.CheckValidDate(Value: TDate);
begin
  if (FMaxDate <> 0.0) and (Value > FMaxDate) then
    raise CalExceptionClass.CreateFmt(SDateTimeMax, [DateToStr(FMaxDate)]);
  if (FMinDate <> 0.0) and [color=red](Value < FMinDate)[/color] then
    raise CalExceptionClass.CreateFmt(SDateTimeMin, [DateToStr(FMinDate)]);
end;



разве не так должно быть (Value <= FMinDate)???
...
Рейтинг: 0 / 0
26.07.2021, 17:08
    #40086290
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
yemets63,
если бы было
Код: pascal
1.
 (Value <= FMinDate)

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

Тестовый пример, работает. Нажимаю кнопку 4, выбираю сегодняшнюю дату в пикере, потом нажимаю кн. 3, показывает текущую дату.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.Button3Click(Sender: TObject);
begin
  Caption := DateToStr(DTPick.Date);
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
  DTPick.MinDate := Date();
end;
...
Рейтинг: 0 / 0
26.07.2021, 17:31
    #40086298
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
s62,

да согласен (Value <= FMinDate) - не то

если все присваивать в исходнике, то все правильно и все красиво, ввожу дату как пользователь, здесь в Vcl.ComCtrls
Код: pascal
1.
2.
if (FMinDate <> 0.0) and [color=red](Value < FMinDate)[/color] then
    raise CalExceptionClass.CreateFmt(SDateTimeMin, [DateToStr(FMinDate)]);


дает ошибку.

наверное буду менять решение
...
Рейтинг: 0 / 0
26.07.2021, 17:46
    #40086306
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
yemets63,

чудес в данном случае быть не должно, почему-то у вас вводимая дата меньше, чем заданная минимальной текущая. Может у вас какой-то код на события этого компонента привязан или еще как-то программно дата меняется?
...
Рейтинг: 0 / 0
26.07.2021, 17:50
    #40086307
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
yemets63после установки минимума и максимума minDate и MaxDate, где minDate = текущей даты

Код этой установки ты, конечно же, опять не покажешь...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.07.2021, 18:24
    #40086316
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
Код: pascal
1.
DateTimePicker1.MinDate := Trunc(Now);
...
Рейтинг: 0 / 0
26.07.2021, 19:41
    #40086325
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
_Vasilisk_
Код: pascal
1.
DateTimePicker1.MinDate := Trunc(Now);



Код: pascal
1.
  DTPick.MinDate := Date();

то же самое даёт.
...
Рейтинг: 0 / 0
27.07.2021, 01:28
    #40086367
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
Dimitry Sibiryakov,
ты про мои потоки, текст показать, неееет, это другая тема, там список процедур с названием компании заказчика, а без него показывать потоки смысла нет!
************************************************************
для того чтобы получить результат негатив или позитив, я убрал из событий свой текст.
в итоге в тексте нет кода, я в свойствах компонента в поля вбиваю даты, без времени
я вижу, что уходит и приходит в ComCtrls, обе минимальные даты равны и исключением является ошибка.

P.S.
в старом моем софте, в DateTime у меня даты проверяются не средствами компонента, а моим текстом, там проблем нет.
!!!парадоксально, но я кажется нашел проблему, сейчас народ будет писать что так быть не должно или не может.
на 3-м мониторе у меня висит гаджет - часы от Windows, Аналоговые,
Так вот с ними компонент от Embarcadero не работает. Я закрываю их, ошибки нет, открываю Embarcadero ругается,
удивительно, но факт.
При том два три раза кликаешь по компоненту, Эксплорер в системе виснет конкретно.
Гадать я не люблю, но это повод больше не использовать этот компонент, не смотря на то что он стандартный.

я изменил решение. Заказчику очень понравилось после согласования. Здесь всем спасибо.
...
Рейтинг: 0 / 0
27.07.2021, 13:19
    #40086458
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DateTimePicker вешает комп, в чем причина.
yemets63ты про мои потоки, текст показать

Нет, я про твой TDateTimePicker. Тот оператор присваивания, которым ты назначаешь MinDate.
В каком месте этого оператора у тебя "список процедур с названием компании заказчика"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DateTimePicker вешает комп, в чем причина. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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