![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| tol |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 13.4.2006 Репутация: нет Всего: нет |
если кто сможет помочь
как работает механизм отображения компонента на своём владельце компоненте ? если создать свой компонент- производный например от кнопки, как изменить старое отображение на новое ? слышал о процедуре PaintWindow(DC: HDC);override; но незнаю как она работает |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Заменить ни как, можно просто рисовать поверх.
Отрисовкой стандартных компонентов занимается windows, так как код этих компонентов (действительный код, а не делфиская оболочка), находится в одной из Api библиотек -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| tol |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 13.4.2006 Репутация: нет Всего: нет |
Но для этого необходимо выйти на на Canvas этого компонента
А как его определить заранее ? возможно использовать свойство PARENT ? |
|||
|
||||
| DigitalDummy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.4.2006 Где: В подвале шоколад ной фабрики. Репутация: нет Всего: 2 |
Отрисовку такого объекта, как кнопка, можно заменить полностью своим кодом с помощью API.
Вам интересен такой вариант? Например, для полного комфорта, можно написать всё это так, чтобы в конце для отрисовки осталась только следующая процедура:
Это сообщение отредактировал(а) DigitalDummy - 17.4.2006, 18:11 |
|||
|
||||
| s-mike |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
Создается DC, контролу передаются сообщения отрисовки WM_ERASEBKGND, WM_PAINT, в этих сообщениях передается DC, на котором обработчиком этих сообщений (или их перехватчиком например со стороны VCL) отрисовывается изображени компонента. |
|||
|
||||
| tol |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 13.4.2006 Репутация: нет Всего: нет |
спасибо за помощь
попробую эту иформацию реализовать в работе |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
s-mike, DC на самом деле создается при создании окна, его нужно только получить.
обработчики WM_ERASEBKGND, WM_PAINT в TButton уже существуют их надо перекрыть и при этом при помощи команды inherited;(без парамеров т.е. без указания имени наследованной функции) в начале своего обработчика вызвать унаследованные -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| s-mike |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 16.1.2005 Где: Киев Репутация: 5 Всего: 16 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |