Про индийских программистов, которые не пишут код, а поют и танцуют

Тема в разделе "WASM.HEAP", создана пользователем _Juicy, 19 фев 2009.

  1. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Похоже, что шутка, вынесенная в заголовок - чистая правда. С MS Office приходилось работать много, но вот это меня добило.
    Заказали поменять цвет стрелочки на кнопке "автофильтра" в Excel.

    [​IMG]

    По-моему, любому адекватному человеку должно быть понятно, что такая кнопка должна лежать в виде битмапа в ресурсах. Однако наши индийские друзья рассудили по-другому.
    После долгих бесплодных поисков битмапа или графических вызовов для рисования, выяснилось страшное: кнопка целиком рисуется через PatBlt.
    То есть сначала делается PatBlt по всей поверхности одним цветом, потом PatBlt для вертикальных и горизонтальных кромок, потом четыре вызова PatBlt - для прорисовки стрелочки из 4х горизонтальных линий.
    Ну и вдобавок, перед каждым вызовом на всякий случай устанавливается не только цвет кисти, но и цвет текста и бэкграунда - мало ли, виндоуз не разберется, чем ей рисовать.

    Короче, я одного не понимаю - как оно еще и работает?
     
  2. deLight

    deLight New Member

    Публикаций:
    0
    а ms-office разрабатывали индийские кодеры?
     
  3. rudik

    rudik Руденко Артём

    Публикаций:
    0
    ВСЕ разрабатывали индийсие кодеры...
     
  4. _tmp17628

    _tmp17628 New Member

    Публикаций:
    0
    Возможно это нужно для отрисовки цветом, зависящим от системной палитры?
     
  5. dgs

    dgs New Member

    Публикаций:
    0
    Ладно еще при долгих уговорах поверю, что это нужно для отрисовки цветом, зависящим от системной палитры, но вот это уже слишком ламерски:
    да и туповато как-то...
     
  6. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    А ведь верно!
    _tmp17628, ты вернул мне веру в M$ и человечество!

    Не знаю теперь, может это тоже имеет глубокий сакральный смысл? Например, для экономии кода запихнули все в одную функцию...
     
  7. Dian

    Dian Member

    Публикаций:
    0
    Скорее уж в один макрос :)
     
  8. murder

    murder Member

    Публикаций:
    0
    А меня напрягает размер exe ~10 Мб (IMHO слишком много).

    Хотя судя по всему Nero сделан ещё более по-индусски, т.к. копирует одни и теже dll в довесок к каждой утилите (утилиты расположены в разных каталогах).
     
  9. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    убейся, хранить каждый квадратик с треугольничком в битмапе - идиотизм. все где нет картинки - должно рисоваться GDI, иначе у тебя реально будет 10Мб ехешник.
    кроме того битмап немасштабируемый, кроме того при работе удаленного рабочего стола твои битмапы будут создавать лишний трафик, в отличие от передачи вызовов GDI

    ах да, нарисовать 3-4 примитива GDI быстрее чем нарисовать *****ю картинку
    ****(вырезано цензурой)*** интерфейсы из одних картинок
     
  10. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Мне стыдно за себя :'(

    Кста, в Mso.dll есть оочень похожий ресурс из четырех квадратиков. Интересно, он где-то используется, или остался как рудимент предыдущих версий?
     
  11. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    некоторые контролы требуют именно иконки, там проще использовать иконку чем сабклассить контрол и рисовать на нем через АПИ
     
  12. Ursus

    Ursus Member

    Публикаций:
    0
    Убейся, как, ****, потом такой ***** код саппортить, на *** ? Всё, что можно сделать битмапом, должно быть сделано битмапом. Кого сейчас парит 10Мб экзешник? Меня - абсолютно не парит.
     
  13. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Ursus
    ты наверное на пхп кодишь раз привык что все картинками, а не рисуется
     
  14. Ursus

    Ursus Member

    Публикаций:
    0
    Спрашиваю еще раз - как потом ЭТО поддерживать?
    Как быстро и без геморроя менять стиль отрисовки? Скины?
    Как, глядя на сорсы, быстро представить визуально, ЧТО за хрень мы там рисуем?

    И вообще, современное железо (а вслед за ним - и всякие GDI, DirectX и т.п.) заточены именно под быстрый вывод битмапов ;)
     
  15. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Ursus
    имхо примитивы выводятся быстрее битмапов,
    стиль отрисовки определяется системными цветами,
    сорцов экселя никто не видел, так что никто не знает как это выглядело на самом деле, как назывались функции (методы), были ли они написаны вручную или сгенерированы шаблонами.
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Зачем спорите? оба подхода имеют право на существование :)
    BitMap-ы хороши тем, что позволяют лучше учесть пиксельность экрана, да и вместо множества мелких линий, прямоугольников и т.п. каждый размером в 3-4 пикселя есно лучше битмапом, но иногда лучше и векторная отрисовка, например для рамок контролов и не только.
    Проблема смены набора цветов легко решается через CreateMappedBitmap, а чтобы exe не раздувался win давным давно (кажется начиная с win98) поддерживает PiNG в ресурсах.
     
  17. _tmp17628

    _tmp17628 New Member

    Публикаций:
    0
    Вроде начиная с Windows 2000 ?
     
  18. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    _tmp17628
    в 98SE точно работало, в 95 не пробовал, в первой версии 98 точно не помню, но кажется тоже срабатывало.
     
  19. _tmp17628

    _tmp17628 New Member

    Публикаций:
    0
    Y_Mur
    Мы наверно про разные вещи, я имею ввиду, что поддержка PNG появилась в gdiplus, которая появилась в Win 2000...
     
  20. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    _tmp17628
    я уже точно не помню, но по моему эксперименты с PiNG в ресурсах мне удавались на 98 до того как я докачал к ней GDI+, правда IE у меня был не родной (4.0), а обновлённый 5 или 5.5. Но в любом случае 98 точно без проблем обгрейдится до поддержки PiNG, даже если изначально её там нет.

    Да кстати, в GDI+ поддержка PiNG это тоже только интерфейс к COM объекту, а сам этот объект кажется ставится IE, правда не помню начиная с какой версии.