Главная страница
    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.042 c
2-1180394288
vasIZmax
2007-05-29 03:18
2007.06.17
Как нарисовать пружину?))


2-1180076046
Gentos
2007-05-25 10:54
2007.06.17
Интерполяция функции


2-1180344944
Infinityx93
2007-05-28 13:35
2007.06.17
CASE


4-1168175568
Чапаев
2007-01-07 16:12
2007.06.17
Права доступа


15-1178522752
TUser
2007-05-07 11:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский