1. Куча / Говнокод #25893

    0

    1. 1
    2. 2
    3. 3
    https://habr.com/ru/post/318876/
    Ублюдок украл код, который я когда-то здесь запостил и выдал за свой. Ай, как некрасиво!..
    И это на сайте, где блять ценят "уникальный контент".

    Между прочим, этот код взят из потрохов JVCL, но в посте нет ни слова об этом.
    Таким образом, этот лошара ещё и насрал на MPL.

    Запостил: cmepmop, 01 Октября 2019

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

    • показать все, что скрытоDelhi - говно
      if Control.Parent = nil then
          Exit;
      Ответить
      • Что тебе не понравилось в этом выдернутом из контекста клочке?
        Control.Parent будет не HWND, а Pointer (да-да, багорно выглядит, особенно, когда не знаешь гениеалогию классов в VCL), ибо речь идёт об экземпляре класса TWinControl.
        Ответить
        • показать все, что скрытоТы уже совсем поехал со своими антипатернами. Это же сраный делийский ужас перед исключениями. throw тут нужен, и починить кривые вызовы.
          Ответить
          • Я вообще ни хуя не понимаю, о чем ты. Зачем там исключение? Там же ничего смертельного нет, это банальная отрисовка. Если у контрола нет родителя, то и нечего и отрисовывать. Просто выйти.
            Ответить
            • https://pastebin.com/NW5j1pTA
              Ответить
            • показать все, что скрыто> Если у контрола нет родителя
              Зачем тогда фнукция вызывалась?

              И вообще, если нет родителя, то это же top-level window, нет?
              Ответить
              • Пример по ссылке посмотри и всё станет ясно.
                Кстати, я думал, ты сам заминусовал свои пёрлы.
                Ответить
                • показать все, что скрытоКакому-то ватнику пичот. Какому - неважно, они все одинаковый звероподобный сброд. Кажется проминусовано еще вручную, ахах.

                  Я всё равно твоей библятеки Turbo Widgets не знаю, так что это бесполезно. Зато вижу в каждой функции затычку, которая стыдливо гасит E_INVALIDARG.

                  if (Control = nil) or (Control.Parent = nil) then
                      Exit;

                  При том, что контракт вполне четко требует procedure CopyParentImage(Control: TControl
                  Ответить
                  • показать все, что скрытоПроцедура CopyParentImage предназначена для "послойного" копирования канвы - контрола, который подали на вход и всех его потомков; строго говоря, ее можно вообще не использовать, установив стиль кисти в bs_clerar. Прикинем, для наглядности, что вызывается эта процедура в контексте метода, выполняющего отрисовку. Итак, цикл перебирает контролы, и вдруг - о ужас!- один из вложенных контролов содержит пустышку - nil. Такое вполне может быть. Выскочило исключение... Потом ещё, ещё и ещё. Тебе ни разу не встречалась прога, сыплющая каскады ошибок, при сдвигании, изменении размеров или просто движении курсора? Это будет тот самый случай.

                    Итог.
                    Не стоит злоупотреблять исключениями.
                    Логика работы метода уместна, несмотря на непривлекательный вид.
                    Ответить
                    • Это банальный аналог printscr, только не целого экрана,а заданного участка. И кстати, стиль BS_CLEAR тут ничем не поможет.
                      http://www.picshare.ru/view/10294708/
                      Ответить
                    • показать все, что скрыто> один из вложенных контролов содержит пустышку - nil
                      И с чего бы такому произойти?
                      Ответить
                      • 1. Может, какой-то хитрожопый составной контрол, с динамической подгрузкой инфы.

                        2. Если функция вызывается применительно к массиву контролов;
                        при удалении объекта ссылка в массиве не обнулится, но допустим, nil попал в массив при заполнении.
                        Ответить
                  • @@При том, что контракт вполне четко требует procedure CopyParentImage(Control: TControl

                    окей,
                    var
                       ctr:TControl;
                    begin
                       ctrl:=nil;
                       CopyParentImage(ctrl); // ЧЯДНТ?
                    end;


                    begin
                       self.Button1.Parent:=nil;
                       CopyParentImage(Button1); // ЧЯДНТ?
                    end;
                    Ответить
                    • Процедура требует ссылку на экземпляр класса TControl в памяти (объект). Нужно сказать, что в памяти, на которую указывает эта ссылка, может быть полный хлам (если память была повреждена или объект был освобожден), причем проверить ссылку на валидность невозможно. Поэтому, правилом хорошего тона считается по крайней мере убедиться, что указатель не пустой, а дальше - как повезет.
                      Ответить
                    • показать все, что скрытоТы, как и положено пассалистам, кодящим на игрушечном язычке, являешься долбоебом, понятия не имеющим о контрактах и делящим на 0. Впрочем, до них любая из привычных программистам штук доходит в крайне извращенном виде. Например, достаточно малейшего прикосновения к этой клоаке - назваться в шутку бромандом, чтобы обнаружить, что в эпоху повального использования VCS исходники жабьего скрипта оказались проебаны.
                      Ответить
                      • Зато ты являешься сказочным долбоёбом, который только и умеет, что прятать своё говно под спойлер.
                        Ответить
                      • Прочитал спойлер до конца. У меня вопрос: ты гомосексуалист?
                        Ответить
    • показать все, что скрытоВ открытый доступ попали данные 20 миллионов налогоплательщиков РФ
      update: 02-10-2019 (11:41)

      В интернет попали данные 20 миллионов российских налогоплательщиков. Как рассказала британская исследовательская компания Comparitech, данные находились в открытом доступе около года.

      В сети оказались ФИО человека, его адрес, телефон и паспортные данные, ИНН, статус налогового резидента и сумма уплаченных налогов, а также данные о работодателях.

      Данные находились в незащищенном кластере облака Amazon Web Services с мая 2018 года. Утечку обнаружил независимый исследователь Боб Дьяченко и связался с неназванным владельцем базы данных. Тот закрыл доступ к базе 20 сентября.

      Как утверждают в Федеральной налоговой службе, часть упомянутых данных не собирается и не хранится в информационных ресурсах. В ведомстве заявили "Коммерсанту", что не могут подтвердить подлинность попавших в интернет данных, так как нет ссылки. ФНС полагает, что публикация Comparitech может быть провокацией.
      Ответить
    • https://ru.wikipedia.org/wiki/Delphi_(язык_программирования)#История_я зыка

      Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET.[источник не указан 2705 дней] Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

      Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);
      Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET.
      Ответить
    • Да, неприятно.
      Ответить
    • Ай-яй-яй!
      Ответить

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