Вниз
Скачать: CL | DM;

и снова мерцание картинки при перерисовке (использую 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
15-1179883929
Mozart
2007-05-23 05:32
2007.06.17
Поиск файлов по локальной сети.


2-1179990590
allucard
2007-05-24 11:09
2007.06.17
Окно нестандартной формы.


2-1180049862
delphino
2007-05-25 03:37
2007.06.17
DISTINCT


2-1179993652
roughneck
2007-05-24 12:00
2007.06.17
DLL + MDI окна


15-1179811829
Sergey13
2007-05-22 09:30
2007.06.17
Просьба к самарцам.




   Наверх