Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
Ruzzz   (2009-08-03 23:04) [0]

Можно ли при обработке wm_paint дать нарисовать компонент системе, и потом его немного дорисовать?


 
TIF ©   (2009-08-03 23:18) [1]

В ОС нет компонентов. Компоненты есть в Delphi.


 
Игорь Шевченко ©   (2009-08-04 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 ©   (2009-08-04 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&amp%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: последнее определение слегка размазанное, ну да ладно, для этой темы и этого много



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
4-1218775071
Hero
2008-08-15 08:37
2009.10.04
TSHFileOpStruct - как сделать копирование видимым?


15-1249310183
pasha_golub
2009-08-03 18:36
2009.10.04
Вызов Free (Destroy) внутри метода объекта


3-1227778320
Вадим
2008-11-27 12:32
2009.10.04
SELECT к нескольким БД


3-1227770092
greg123
2008-11-27 10:14
2009.10.04
Как задать колонку, по кот. нужно сортировать результат в EhGrid


2-1249302439
InteGer
2009-08-03 16:27
2009.10.04
JCreateProcess





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский