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

Вниз

и снова мерцание картинки при перерисовке (использую BitBlt)   Найти похожие ветки 

 
ari_9   (2007-05-23 01:58) [0]

на форме лежит несколько панелей и сплитеров, на одной из панелей лежит xImage:TImage. сделал так потому, что удобно не обрабатывать его размеры, а просто задать Align = alClient панели. по onResize или другим действиям пользователя вызывается функция перерисовки изображения

код примитивный

var
 xBMP: TBitmap;
...
 xBMP := TBitmap.Create;
 xBMP.Width := xImage.Picture.Bitmap.Width;
 xBMP.Height := xImage.Picture.Bitmap.Height;
...
 заполняю xBMP
...
 BitBlt(xBMP.Handle, 0, 0, xBMP.Width, xBMP.Height,
   xImage.Canvas.Handle, 0, 0, SRCCOPY);
 xBMP.Free;


при этом все ресайзы и, соответственно, перерисовки сопровождаются очень неприятным мерцанием. что я делаю неправильно ? как я понимаю, при использовании BitBlt нет смысла играться с DoubleBuffered ?.. или для лежащего на форме TImage в принципе нельзя добиться отсутствия мерцания,  нужно было рисовать прямо на канве панели ?

понимаю, что вопрос обсуждается регулярно, но поиском не нашел ответа


 
ari_9   (2007-05-23 11:37) [1]

все утро играюсь, от мерцания не избавился

нужна помощь


 
clickmaker ©   (2007-05-23 11:42) [2]


> BitBlt(xBMP.Handle

что это? Там же HDC должно быть
и непонятно: рисовать-то надо на xBMP или все же на Image?


 
ЮЮ ©   (2007-05-23 11:48) [3]


> код примитивный
>
> var
>  xBMP: TBitmap;
> ...
>  xBMP := TBitmap.Create;
>  xBMP.Width := xImage.Picture.Bitmap.Width;
>  xBMP.Height := xImage.Picture.Bitmap.Height;


Да уж. А без указания обработчика и бесполезный.
А почему после формирования xBMP просто не сделать xImage.Picture.Assign(xBMP), если BitBlt сдерживает указать DoubleBuffered у формы?


 
Loginov Dmitry ©   (2007-05-23 12:56) [4]

Нафик здесь вообще TImage нужен? Рисуй на канве формы или на TPaintBox"е.



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

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

Наверх




Память: 0.45 MB
Время: 0.048 c
6-1164127502
Atlantis
2006-11-21 19:45
2007.06.17
протокол RARP


15-1179241716
Title
2007-05-15 19:08
2007.06.17
Компонент для отправки писем


9-1153360589
RobinBad
2006-07-20 05:56
2007.06.17
Установка Glscene


10-1134032327
_Lucifer_
2005-12-08 11:58
2007.06.17
Создание Add-ins для Word


15-1179922587
Loginov Dmitry
2007-05-23 16:16
2007.06.17
Мифы о безопасном ПО





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский