powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DateTimePicker вешает комп, в чем причина.
9 сообщений из 9, страница 1 из 1
DateTimePicker вешает комп, в чем причина.
    #40086278
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
DateTimePicker вешает комп, в чем причина.
    #40086290
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
DateTimePicker вешает комп, в чем причина.
    #40086298
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
DateTimePicker вешает комп, в чем причина.
    #40086306
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63,

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

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



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

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

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

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

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


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