Школоло / Говнокод #26325 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
1)
const
  OUT_OF_BOUNDS:TPoint=(X:-1; Y:-1);
var
  INT_OUT_OF_BOUNDS:Integer absolute OUT_OF_BOUNDS;

TargetForm.Perform(WM_LBUTTONUP,0,INT_OUT_OF_BOUNDS);

2)
const
  ZERO_ZERO:TPoint=(X:0; Y:0);
var
  INT_ZERO_ZERO:Integer absolute ZERO_ZERO;

TargetForm.Perform(WM_LBUTTONUP,0,INT_ZERO_ZERO);

3)
TargetForm.Perform(WM_LBUTTONUP,0,0);

Болею. Стояла задача воспроизвести системное меню. Но оказалось, что при клике на элемент фейкового системного меню, форме не посылается WM_LBUTTONUP и кнопка-иконка не перекрашивается в ненажатый вид. Решил перформить WM_LBUTTONUP прямо при клике, но туда нужно передавать координаты мышки куда был совершён клик в High(lParam) и Low(lParam). Сначала хотел передавать -1;-1 но подумал что передавать туда $FFFFFFFF как-то некрасиво, а прямое приведение типов а-ля Integer(Point(-1,-1)) оно у меня хавать не захотело, и поэтому красоты ради наговнокодил первый вариант кода. Потом подумал, а что если там только положительные значения, будет же 65535;65535 непорядок, лучше буду передавать нули. Впихнуть туда просто 0 сразу в голову не пришло (болею же, башка квадратная) и наговнокодил второй вариант.

Потом, конечно же, написал всё по нормальному.

Запостил: KOTOM KOTOM, (Updated )

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

  • Это каким же надо быть додиком, чтобы кастовать структуру в Integer и передавать как указатель?.. Выйдет за пределы процедуры - будет AV. Нужно было запилить PPoint c выделением памяти ручками.
    Ответить
    • Сам додик, это не указатель. Там передавать нужно DWORD, я его и передавал. И оно в любом случае никуда не выйдет, там можно что угодно писать, оно воспринимается как два ворда.
      Ответить
      • это безграмотный уебок, не отвечай ему
        Ответить
            • «КОТОМ» и «Fike» - файки стертора, косящие под нормального.
              Ответить
              • Иню, ну пили уже общий игнор, ну сколько можно плескаться в ванне с говном?
                Ответить
                  • ты туда добавишь все ники уебка, и гк станет чистым, не?
                    Ответить
                    • Ты утомишься их банить... Я могу долго создавать впечатление адекватного, а потом внезапно серануть.
                      Ответить
                          • Меня коробит гипертрофированное лицемерие, на котором базируются все межличностные отношения в Осетии...
                            Отчасти это навеяно переходящими из уст в уста рассказами о том, как коротали время пастухи и колхозники, в эпоху славного СССР: ножки животного помещались за голенища сапог - таким образом, оно было лишено возможности убежать или сопротивляться. С трудом верится, что оскорблённые таким образом начала были с корнем вырваны; нет, этого не было. Они дали жизнь новым поколениям, среди которых, быть может, и вы. Меньше пафоса, господа.
                            Ответить
                            • Меня угнетает, что старших принято... нет, не принято, а они сами настаивают на этом - уважать только за то, что они старше; ещё один наглядный пример демагогии. Я считаю, что аппеляция к возрасту уместна лишь в общественном транспорте (чтобы уступили место). Это вполне объективно: в силу возрастных изменений опорно-связочный аппарат пожилого человека слабее, чем молодого. Они лгут Вам, подстраивая Ваше сознание так, чтобы Вами было удобнее манипулировать.

                              Просто задумайтесь: если человек всю жизнь был негодяем - спишет старость его пригрешения?

                              Посмотрите только, во что превратились наши национальные праздники, где зачастую пожилые, уважаемые люди перебрав с алкоголем демонстрируют недостойное поведение. Особенно я ненавижу праздник Уастырджи. В эти дни я ухожу из дома, чтобы не слышать пьяных криков.
                              Наверняка среди читателей моего поста найдутся "огнедышашие драконы", возмущенные моими словами, в силу инерции не могущие сразу признать мою правоту. Для них отдельный вопрос, ответив на который они смогут оценить уровень своей образованности: господа, как по-Вашему, откуда в нашем родном языке взялось сочетание "джи"? Почему не Уас Георги, а Уастырджи?

                              Суровый Уас Георги вряд ли одобряет, что к нему обращается нетрезвый человек. Не потому ли дела в республике идут из рук вон плохо? И при всём этом у них ещё поворачивается язык обвинять молодежь. Даже Гастан Агнаев бессовестно лжёт, указывая, что в рощу святого Хетага (никакой он не святой, ну да Господь с ним) можно брать с собой алкоголь.

                              Можно написать ещё много-много слов, но это излишне.

                              Давайте отбросим лживые традиции и начнем строить новое общество - объективное, в котором нет места заплесневелым стереотипам.



                              ?
                              Ответить
              • Предлагаю не превращаться в параноиков и отвечать только на адекватные сообщения (неважно чьи), а неадекватные игнорировать. Тогда у стерторов сработает рефлекс собаки Павлова и они перевоспитаются.
                Ответить
                • нет, они будут срать еще больше
                  Ответить
                    • Гост, прошу тебя, давай создадим "Клуб анонимных похуистов"! У нас будет обширная аудитория, ведь их 95% населения.
                      Ответить
                    • Мне не похуй

                      У меня обостренное чуство прекрасного, стерторовый тухлый понос это чуство оскорбляет
                      Ответить
                  • Это же фишечка ГК - что каждый несмотря на расу, пол, вероисповедание, уровень знаний C++ и русского языка может поднасрать на этом сайте.
                    Ответить
                    • Где-то описывали схему, где все дружно объединяются в группы по интересам за счёт продвинутой системы фильтрации.
                      Правда, немного жаль, что в отличие от систем с баном тут никак нельзя узнать, забанили ли тебя, читают ли, отвечают/плюсуют/минусуют вручную или скриптами. С другой стороны, если человек с адблоком в голове и профессиональным пофигизмом твои сообщения тупо пролистываешь, ты тоже ничего не узнаешь.
                      Ответить
                • скажу честно, я не перестану спамить и срать, что бы вы не сделали.
                  Блокировать файки бесполезно - я могу каждый день регать по десятку новых.
                  Ответить
              • > «КОТОМ» и «Fike» - файки стертора, косящие под нормального.
                как же я сейчас зоорал!
                Ответить
      • Додик как раз таки ты.
        Мало того, что путаешься в типах так ещё и про разделение памяти не слыхал.

        Слово absolute служит для приведения типов. Итак, ты кастанул структуру в Pointer затем в Integer и скормил полученное значение функции... Отлично.
        Структуры как и строки, имеют счетчик ссылок, который обнуляется, как только переменная выйдет за пределы видимости; после этого объект убивается. Можешь сам представить, что будет, если вариабле INT_OUT_OF_BOUNDS выйдет за приделы процедурыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыы ыыыыыыы
        Ответить
        • Слово absolute служит для того, чтобы две переменные занимали одну и ту же память. INT_OUT_OF_BOUNDS в данном случае будет равен $FFFFFFFF, так как память занимаемая TPoint будет FFFFFFFFFFFFFFFF. Во втором случае ZERO_ZERO будет забит нулями.
          Ответить
          • Насколько я понимаю, профессор имеет в виду примерно следующее:

            function govno:Integer;
            var
               P:TPoint;
            begin
               {что-то делаем...}
               Result:=lparam(Pointer(P));
            end;


            А теперь вопрос на засыпку:

            1. что случится с памятью на которую ссылается P, когда инструкция выйдет из метода?

            Поскольку клок кода выдран из контекста, я верю, что всё работает как-то так:

            procedure navoz;
            var
            P:TPoint;
            begin
            {что-то делаем...}
            SendMessage(TargetForm.Handle, WM_LBUTTONUP, 0, lparam(Pointer(P)));
            end;
            Ответить
            • У меня TPoint был глобальной константой, а Integer который absolute глобальной переменной.

              Но вообще в делфи абсолютно все константы, даже локальные, находятся в памяти всегда (именно константы). Так что указатель на константу в любом случае тухлым быть не может.
              Ответить
              • @@У меня TPoint был глобальной константой, а Integer который absolute глобальной переменной.

                Ох, лучше бы ты этого не говорил... Тебя говном закидают, ступай отсюда.


                Вообще, я люблю делфи не только за интерфейсность, а и за то, что на нем кодят многие подростки. Появляется общая тема сперва для общения, потом... Ну, короче пару раз соснуть не пидорство.
                Ответить
  • В первом и втором варианте, походу, только X попал в результат? У поинта же поля по 4 байта?
    Ответить
    • Может там по 16 бит на координату? Всё-таки для точки на экране 32 будет многовато. Я вроде бы даже в каком-то бейсике встречал как координаты клика возвращались в виде 32 битного инта, 16 бит на x и 16 на y, чтобы получить сами координаты приходилось заниматься байтоёбством.
      Ответить
      • Так точно. Координаты приходят в «lParam», который нужно разбить по 2 байта. Нужно использовать специальные мокросы, чтобы избежать багра, когда более 1 монитора.
        Ответить
        • Хз, это у автора надо спрашивать, я бы сделал как в lparam для удобства.
          Ответить
      • 65536 пикселей хватит на всех? Ну, пока даже с разговорами о 8K запас есть, но когда-нибудь вопрос встанет...

        И кстати, вы уверены, что координаты не могут быть отрицательные? Если два монитора, и вторичный расположен слева. Бывают программы, которые от этого глючат.
        Ответить
        • Интересно, что будет, если винде подсунуть 10 8К моников, или один большой?
          Ответить
        • Координаты и без двух монитором могут быть отрицательные, если например это координаты относительно окна или кусок окна за экраном. А так же все свёрнутые окна на самом деле выпиннываются в -32536,-32535.
          Ответить
    • А вообще, рекомендую не помогать стертору, а слать его нахуй.
      Ответить
      • Профессор далёк от коммерческого кодинга да и сама задача - эмулирование меню, скажем так, плохо пахнет.

        Это не стертор.
        Ответить
    • Да. Там X разделился и на X и на Y. Но по факту и там и там оно делилось либо на FFFF и FFFF или на 0000 и 0000. Надо было в SmallPoint тогда уж) Но я с температурой был, вообще плохо думалось.
      Ответить
  • Пособие по математике для поступающих в вузы
    М. Ногоедов. (М., “Бельмес”, 1993, 10.000.000 экз.)

    Книга по-своему интересна, однако хотелось бы отметить ряд методических недостатков.

    С первой же страницы вызывают недоумение выражения типа “ежу понятно”, “тудым-сюдым колеблется”, “треугольник ABC с финтифлюшкой на конце”, вплоть до “ну его на хрен, это доказательство”.

    Введение новых терминов не всегда оправданно. Вместо слов “жлыга”, “торчун”, “одуренный”, толстопузый“, о значении которых приходится догадываться лишь из контекста, разумнее было бы использовать традиционные ”трапеция“, ”перпендикуляр“, ”большой либо равный двум“, ”выпуклый“. А оборота ”плоский, как старая шлюха“ (стр. 113, теорема Пифагора) стоило бы избежать хотя бы из уважения к старым шлюхам.

    Далее. Можно, конечно, бесконечно долго спорить о том, куда, по мнению автора, сходится функция 1/x, но рисунок на стр. 157 просто подпадает под действие закона ”О порнографии“.

    Ну а пассаж в конце главы 3 вообще не лезет ни в какие ворота. Корректней было бы написать ”оставляем доказательство читателю“, чем объяснять на двух страницах, что ”...башка с утра раскалывается“ и что ”... вчера такой дряни намешали“.

    И наконец, нельзя согласиться с заключительной фразой (стр. 315), что, дескать, ”место всех этих придурков в тюрьме, а не в вузе".

    В целом же книга интересная, талантливо написана и будет безусловно полезна для всех тех, кто заканчивает школу и вступает на нелегкий и увлекательный путь половой зрелости.
    Ответить
  • "Привет! я помогу тебе найти жилье, или найти арендаторов.",
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8