Jump to content
  • Status: Fixed
  • Priority: Normal
  • Resolution: Fixed
  • Platform: iOS
  • Affects version: 1.18.1.3

Здравствуйте, fgDateEdit вызывает аварийное закрытие на некоторых датах при тапе на него.

При этом, если вручную выставить (не моим кодом, а с экрана телефона) эту же дату, падения больше не произойдет, теперь даже при установке этой же даты кодом.

Во вложении 2 fgDateEdit на форме, у обоих TodayDefault = false и дата различается в 1 день. На одном из них будет падение при тапе на него.

Это и на ios arm simulator, и на реальном устройстве

Снимок экрана 2024-06-12 172127.png

Снимок экрана 2024-06-12 172210.png

Снимок экрана 2024-06-12 172220.png

testDateEdit.zip


Fix version: 1.18.4.0

User Feedback

Recommended Comments

iWorm2009

Active subscription
(edited)

После некоторых консультаций с Viktor Akselrod, похоже проблема воспроизведется только, если TimeZone на локальном устройстве предполагает переход на летнее время.
Соответственно для GMT+3 (Москва)

DateTimeToUnix(EncodeDate(1984, 4, 1))

поднимет ошибку какая приведена на скрине.
При этом 

DateTimeToUnix(IncHour(EncodeDate(1984, 4, 1), 1))

отработает нормально.
Как я понимаю, при переходе на летнее время за 1984-03-31Т23:59:59 следующая секунда 1984-04-01Т01:00:00, очевидно выпадает час, собственно этот переход на летнее время.
Ну и далее я могу лишь предположить, что в fgDateEdit задается только дата, а время всегда задается 00:00:00, или вообще отсекается ( Trunc(DateTime) ). Как далее компонент работает с этим я вообще не знаю, но тем не менее в debug ругается именно на то, что видимо этого времени не существует

Edited by iWorm2009

iWorm2009

Active subscription

Не могу понять все же, почему это проблема Rtl... Если я задаю неверное время, оно мне справедливо поднимает исключение, говоря что ошибка в входном времени. Однако, если я прибавляю час (т.е время верное), код отрабатывает штатно. При этом компонент (и это только на ios) продолжает вызывать аварийное закрытие. 

Т.е 

fgDateEdit.Date(или .DateTime) := IncHour(EncodeDate(1984, 4, 1), 1); попросту на ios не сработает, хотя ошибок тут нет.

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.