1. Pascal / Говнокод #18566

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    procedure PP.Execute;
    begin inherited;
    (Sender as TIndusImage).KOT;
    end;

    В Delphi XE, не знаю с какой версии начиная (в XE7 и XE8 точно) крупные проблемы с TGifImage, а если точнее - если быстро и много их менять, то рано или поздно вываливается тупо всё вместе с интерфейсом (100% где-то в потоках налажали), причем если быстро менять BMP, то всё ОК.

    Пришла в голову идея в потоке самому менять кадры анимации, подгружая их как BMP, и дабы затестить сработает ли вообще, начал писать тестовую прогу.

    Писал особо не заботясь ни о чем, а потом заметил вот таких индусских котов.

    Запостил: KOTOM, 03 Августа 2015

    Комментарии (20) RSS

    • Что, Delphi еще жив? На нем еще кто-то пишет?
      Ответить
      • >> На нем еще кто-то пишет?

        >> KOT
        Ответить
        • На нем ёще кот-то пишет.
          Ответить
          • на диалекте "Коталь"
            Ответить
            • Лол. На нём пишут те, кому лень думать, почему всё написано правильно, но ничего не работает (Пишут для себя естественно).
              Ответить
              • Зачем писать на языке с динамической типизацией чтобы потом нихера не работало?
                Ответить
                • Динамическая типизация в паскале? Это что-то новенькое...
                  Ответить
                  • В делфи вроде был какой то динамический тип данных
                    Ответить
                  • В Object Pascal (Delphi) действительно есть тип Variant, в котором можно хранить значение почти любого типа. Реализован он как запись с двумя полями:
                    1. Первое поле — дескриптор. В нём хранится числовое значение, указывающее на тип значения второго поля.
                    2. Второе поле — вариантное (в терминах языка Си — union).

                    Но, увы, автоматического преобразования типов, как в PHP, нет. Нужно явно вызывать функции преобразования.

                    Очень мало библиотечных функций принимают на вход Variant.

                    И вообще его почти не используют. Разве что для того, чтобы написать самодельный аналог функции printf для доказательства, что «всё можно сделать своими руками». Троллейбус из буханки, короче.
                    Ответить
                    • > В нём хранится числовое значение, указывающее на тип значения второго поля

                      Я правильно понимаю, что так можно закодировать лишь заранее известное подмножество типов? Подход не расширяемый?
                      Ну т.е. понятно, что туда можно впихнуть какой-нибудь Object, но как потом понять, какой был первоначальный тип? instanceof?
                      Ответить
                    • > В Object Pascal (Delphi) действительно есть тип Variant
                      А в c++ есть boost::any, в котором можно хранить значение любого типа, который можно копировать. И что теперь...
                      Ответить
                      • Может пидар кроме variant ничего в делфи и не видел.
                        Хотя скорее всего он ничего в делфи не видел
                        Ответить
                      • boost::any - шняга. boost::variant - няшка.
                        Я его иногда использую для message-passing style.
                        Ответить
                        • Но ведь в boost::variant можно упихать не все типы, а только перечисленные. Динамическая типизация не получится.
                          Ответить
                          • Инта уже недостаточно?
                            Ответить
                            • > инта
                              Его уже давно недостаточно... В него, к примеру, даже указатель или размер блока памяти кастануть нельзя. А указатель на член - и подавно.
                              Ответить
                    • >Троллейбус из буханки, короче.
                      Это уже не модно
                      https://images.encyclopediadramatica.se/thumb/4/48/Potatotron2000.jpg/800px-Potatotron2000.jpg
                      Ответить
                  • Со статической конечно же, еще и строгой.
                    Ответить
    • Вызывать CoInitialize() автор, конечно не пробовал..
      Зачем, если можно обвинить приписать свою глупость и лень - разработчикам.
      Слово inherited тоже лишнее. Execute - виртуальный метод.
      Ответить
      • > CoInitialize
        В делфи гифки через COM объект реализованы?
        Ответить

    Добавить комментарий