На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (19) « Первая ... 14 15 [16] 17 18 ... Последняя » все  ( Перейти к последнему сообщению )  
> Новости Embarcadero , Новости, патчи, ссылки, объявления, анонсы...
      Цитата Fr0sT @
      Ну и бу на них :( Аж с 7ки баг тянется, и все никак не починят
      Согласен, реально достали уже :yes:
          Embarcadero RAD Studio 10.1 Berlin

          ISO (7 GB): http://altd.embarcadero.com/download/radst...builder10_1.iso

          What's New
          Bug fix list

          Краткий обзор на хабре: Релиз RAD Studio 10.1 Berlin (Delphi, C++Builder)
            Долго думал, куда отправить этот крик души, наверно, все-таки в новости, ибо вызвано сменой кодовой базы.
            Глянул я вчера исходник элементарного IncDay и погрузился в охреневающий ужас...
            ExpandedWrap disabled
              function IncDay(const AValue: TDateTime;
                const ANumberOfDays: Integer = 1): TDateTime;
              begin
                Result := IncHour(AValue, ANumberOfDays * HoursPerDay);
              end;
               
              function IncHour(const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime;
              begin
                Result := IncMinute(AValue, ANumberOfHours * MinsPerHour);
              end;
               
              function IncMinute(const AValue: TDateTime;
                const ANumberOfMinutes: Int64 = 1): TDateTime;
              begin
                Result := IncSecond(AValue, ANumberOfMinutes * MinsPerHour);
              end;
               
              function IncSecond(const AValue: TDateTime;
                const ANumberOfSeconds: Int64 = 1): TDateTime;
              begin
                Result := IncMilliSecond(Avalue, ANumberOfSeconds * MSecsPerSec);
              end;
               
              function IncMilliSecond(const AValue: TDateTime;
                const ANumberOfMilliSeconds: Int64 = 1): TDateTime;
              var
                TS: TTimeStamp;
                TempTime: Comp;
              begin
                TS := DateTimeToTimeStamp(AValue);
                TempTime := TimeStampToMSecs(TS);
                TempTime := TempTime + ANumberOfMilliSeconds;
                TS := MSecsToTimeStamp(TempTime);
                Result := TimeStampToDateTime(TS);
              end;


            И это я еще не привел функции
            1) DateTimeToTimeStamp
            2) TimeStampToMSecs
            3) MSecsToTimeStamp
            4) TimeStampToDateTime

            Полез в D7, чтобы убедиться, что не страдаю воспоминаниями из параллельной реальности
            ExpandedWrap disabled
              function IncDay(const AValue: TDateTime;
                const ANumberOfDays: Integer): TDateTime;
              begin
                Result := AValue + ANumberOfDays;
              end;


            Спрашивается, на хрена такие "обновления"?
            Сообщение отредактировано: Fr0sT -
              Цитата Fr0sT @
              Спрашивается, на хрена такие "обновления"?
              Быть может готовятся, что TDateTime будет не просто Double, которой нет на каких-нибудь ARM'ах (или ещё где), а какой-то более универсальной структурой/классом. :unsure:
              Ну и "метод чайника" весьма надёжен. :rolleyes:

              П.С. а так - да, кошмарно выглядит, на первый взгляд.
                Всё может быть, и мультиплатформенность требует жертв. Почему, однако, у FPC такой проблемы нет, а ведь он компилится под ARM? Ну и в конце концов, зачем делать настолько длинную цепочку вызовов, множа imul-ы (не говоря уже о том, что у меня почему-то эти функции не инлайнятся, в результате чего на asm код вообще лучше не смотреть), почему бы не умножать сразу на нужную величину? Загадка.
                  Цитата Fr0sT @

                  Спрашивается, на хрена такие "обновления"?

                  IncDay из D7 может пропустить неверную дату
                  а обновлённая, кинет исключение
                    Shaggy, а что есть "неверная дата"? Для tdatetime это 01/01/0100, для timestamp - 01/01/0000, но это просто условности, и если не брать во внимание сопутствующие функции, то сами по себе типы прекрасно обработают отрицательные значения.
                    Кроме того, ничто не мешало и у tdatetime сравнивать с нижним пределом.
                      Fr0sT
                      Дельфи морально устарел.

                      Есть международный стандарт выпущенный ещё до Delphi. Но уже отменяющий TimeStamp. Наши его перевели в ГОСТ ИСО 8601-2001. Но разработчики Delphi озаботились только сейчас.

                      Так вот в дате есть весокосные года 29 февраля. Есть системы дата-время где есть високосные часы минуты и секунды.

                      Они же дополнительные секунды.

                      Есть ещё и доп минуты и доп часы Смотрите там часы от 00 до 24 минуты от 00 до 60.
                      Сообщение отредактировано: Pavia -
                        Pavia, и какое представление современно?
                          Цитата Fr0sT @
                          Глянул я вчера исходник элементарного IncDay и погрузился в охреневающий ужас...

                          Код того же boost'а не видел? :)
                            Krid, буст известный мастодонт, я туда и не лезу - это все сиплюсплюсные дела. А вот в RTL такой подставы не ожидал...
                              Цитата Fr0sT @
                              А вот в RTL такой подставы никто не ожидал...


                              Согласен :yes:

                              Просто они хотят одинаковую базу кода подвести для всех платформ.
                              Если серьёзно, то этот код Delphi ничем не отличается от кода Microsoft'а.
                                Цитата Fr0sT @
                                Глянул я вчера исходник элементарного IncDay и погрузился в охреневающий ужас...
                                ...
                                Спрашивается, на хрена такие "обновления"?


                                Элементарного IncDay? :D Дело в том, что как в той песенке поётся, "всё хорошо, прекрасная маркиза, за исключеньем пустяка..."
                                Вот для затравки:
                                «Never say never» или Работаем с таймзонами правильно
                                Что же всё-таки не так со структурой DateTime?

                                Очень рад, что у Delphi-команды дошли руки и до этого. Ибо в Delphi RTL было дофигища подобных naive implementation для "элементарных" вещей. Скажем, то же округление - далеко не сразу появились Floor/Ceiling/etc, поэтому в старых проектах часто приходилось рисовать "своё" округление для верной работы дробей.
                                  Цитата Mr.Delphist @
                                  Вот для затравки:
                                  «Never say never» или Работаем с таймзонами правильно
                                  Что же всё-таки не так со структурой DateTime?


                                  Как все это соотносится с TDateTime?
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0620 ]   [ 19 queries used ]   [ Generated: 29.03.24, 12:34 GMT ]