Конференция "Начинающим" » Как "дорисовать" стандартный компонент ОС?
 
  • Ruzzz (03.08.09 23:04) [0]
    Можно ли при обработке wm_paint дать нарисовать компонент системе, и потом его немного дорисовать?
  • TIF © (03.08.09 23:18) [1]
    В ОС нет компонентов. Компоненты есть в Delphi.
  • Игорь Шевченко © (04.08.09 00:08) [2]
    TIF ©   (03.08.09 23:18) [1]

    Для того, чтобы сказать что-то умное, нефигово бы и кругозор иметь соответствующий. А недержание надо лечить.

    Ruzzz   (03.08.09 23:04)  

    Можно.

    1. Перекрыть стандартный обработчик WM_PAINT, как это сделано в StdCtrls.TCustomComboBox, вызвать inherited и дорисовать.
    2. Перекрыть во время выполнения метод WindowProc нужного компонента, и обрабатывать сообщение WM_PAINT, вызывая предыдущую оконную процедуру и дорисовывать.
  • TIF © (04.08.09 04:53) [3]
    Дополню мысль. Можно посчитать это очередным излиянием, но тут я уже вылил конкретику, а не одну фразу на ветер.

    В ОС нет явных компонентов. В ОС есть только "заготовки" для сборки нужных control-ов по кусочкам (см. ComCtl32). В Delphi же собранное из таких минимальных структурных единиц именуется компонентом (визуальным).

    Благодаря такой реализации начиная с Windows XP появились темы. Допустим, та же самая кнопка состоит из множества "кусочков" - границ, тени, внутренней заливки для обычного, выделенного и нажатого состояний и т.п. Сменилась тема - сменились "кусочки", допустим кнопка осталась кнопкой, но уже "пересобрана заново", так сказать. Всё это обычно мало интересно разработчику; всё равно что программирование на ассемблере - круто, но требует громадных усилий и если не требуется создать что-то новое, то легче и правильнее воспользоваться готовой комбинацией - готовым компонентом.

    > Как "дорисовать" стандартный компонент ОС?

    Заканчиваю свою придирку правильным на мой взгляд вариантом названия темы (никому его не навязываю):
    Как "дорисовать" стандартный элемент управления ОС?

    http://microsoft.com/language/ru/ru/search.mspx?sString=control&langID=ru-ru

    control - элемент управления
    An object that enables user interaction or input, often to initiate an action, display information, or set values.



    http://microsoft.com/language/ru/ru/search.mspx?sString=control&%3blangID=ru-ru

    component -компонент
    An object that is reusable and can interact with other objects. Note: Every control is a component, but not every component is a control.



    PS: последнее определение слегка размазанное, ну да ладно, для этой темы и этого много
 
Конференция "Начинающим" » Как "дорисовать" стандартный компонент ОС?
Есть новые Нет новых   [134435   +33][b:0][p:0.001]