На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania 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_
Страницы: (18) « Первая ... 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 -
            Codero ergo sum
            // Программирую — значит, существую
              Цитата Fr0sT @
              Спрашивается, на хрена такие "обновления"?
              Быть может готовятся, что TDateTime будет не просто Double, которой нет на каких-нибудь ARM'ах (или ещё где), а какой-то более универсальной структурой/классом. :unsure:
              Ну и "метод чайника" весьма надёжен. :rolleyes:

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

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

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

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

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

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

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

                          Код того же boost'а не видел? :)
                          Кто рано встает, тому целый день спать хочется
                            Krid, буст известный мастодонт, я туда и не лезу - это все сиплюсплюсные дела. А вот в RTL такой подставы не ожидал...
                            Codero ergo sum
                            // Программирую — значит, существую
                              Цитата Fr0sT @
                              А вот в RTL такой подставы никто не ожидал...


                              Согласен :yes:

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


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

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


                                  Как все это соотносится с TDateTime?
                                  Codero ergo sum
                                  // Программирую — значит, существую
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script Execution time: 0,3951 ]   [ 20 queries used ]   [ Generated: 22.10.18, 08:06 GMT ]