![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| midiar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Добрый день!
У меня есть битмап, на котором я рисую и потом вывожу его на канву. Если это происходит часто, то изображение дрожит. Как этого можно избежать? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
|
|||
|
||||
| midiar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Я редактирую компонент, а он унаследован от TGraphicControl.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Если наследовать от TWinControl. Если нет, то используй GDI+ или посмотри, как сделано в TWinControl.WMPaint во второй части - где при DoubleBufered. |
|||
|
||||
| midiar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Я посмотрел и ничего не понял, я не умею хорошо работать с графикой. Но я все рисую и так в памяти на битмап, а потом вывожу ее с помощью BitBlt. Что там нужно сделать дополнительно?
|
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Перед рисованием вызывай
После рисования
TPaintStruct заполнять не нужно - просто отдай переменную этого типа бегину, а потом ее же енду. BeginPaint вернет тебе DC, на котором нужно делать BitBlt. |
||||
|
|||||
| midiar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
А handle чей передавать?
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Owner'a я полагаю. Получается, что ты на нем рисуешь, раз уж у тебя не WinControl...
Или Parenta. Попробуй и того и другого. |
|||
|
||||
| midiar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Не помогает, я пробовал и код из TWinControl.WMPaint адаптировать, тоже не помогает. Здесь что-то другое
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Попробуй присвоить DoubleBufered:=true паренту или Owner'у. (или обоим сразу).
|
|||
|
||||
| midiar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Ага, получилось, спасибо
|
|||
|
||||
![]()
|
| Правила форума "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. |