Главная страница
    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.044 c
1-1176890740
Denis
2007-04-18 14:05
2007.06.17
cxGrid - как обратиться к отфильтрованным записям?


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


1-1177148712
Антон Шестаков
2007-04-21 13:45
2007.06.17
Проектирование ИС и Экспертные системы


2-1179961169
delphino
2007-05-24 02:59
2007.06.17
operator not applicable to this operand type


15-1179583409
PHPdeveloper
2007-05-19 18:03
2007.06.17
Каталог статей, PHP





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