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

Вниз

Мерцания при прорисовки или большой объём файлов.   Найти похожие ветки 

 
EugenCFG   (2003-12-24 14:23) [0]

Вот два способа как я перемещаю одну bmp-шку поверх другой.

1) способ. Я загружаю в Image1 и Image2 две bmp (одна весо 3 мегабайта, другая пол соответственно). И на событие OnMouseMove
двигаю Image2, а Image1 остаётся нетронутый всё время.

Image2.Left:=x;
Image2.Top:=y;

Вот самый простой способ. Работает без каких-либо торможений, но здесь присутствуют мерцания.

2) способ. Загружаю Image1 (bmp весом 3 мегабайта). Image2 здесь вообще отсутствует. Затем я рисую вторую bmp поверх первой. Следующий код это показывает (здесь ещё белый цвет становится прозрачным)


GlassMap := TBitMap.Create;
GlassMask := TBitMap.Create;
GlassMap.LoadFromFile("Name.bmp");

with Image1.Picture.Bitmap.Canvas do
begin
CopyMode := cmSrcPaint;
Draw(X, Y, GlassMask);
CopyMode := cmSrcAnd;
Draw(X, Y, GlassMap);
end;


Нарисовал. А теперь на событие OnMouseMove двигаю Name.bmp. Если рисовать таким вот образом на каждое перемещение мышью останется след, поэтому надо стирать и рисовать заново. В процедуре FormMouseMove Я делаю так:

Image1.Picture.Bitmap.LoadFromFile("1.bmp"); //!!!!!

GlassMap.LoadFromFile("Name.bmp");

with Image1.Picture.Bitmap.Canvas do
begin
CopyMode := cmSrcPaint;
Draw(X, Y, GlassMask);
CopyMode := cmSrcAnd;
Draw(X, Y, GlassMap);
end;


Но файл весом в 3 мегабайта при постоянной загрузке не дает ожидаемого результата, "тормозит" как говорится. Перемещается не плавно и быстро, а скачками.

Если держать его постоянно в памяти (в буфере), что-нибудь измениться? Если да, то как это реализовать?

Может есть какие-то стандартные способы???

Спасибо.


 
VMcL   (2003-12-24 14:37) [1]

>>EugenCFG (24.12.03 14:23)

А если Image покласть на TPanel с DoubleBuffered = True, это спасет отца русской демократии?


 
EugenCFG   (2003-12-24 15:10) [2]

Конечно же да!

Спасибо!..



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

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

Наверх





Память: 0.45 MB
Время: 0.012 c
3-25259
DmitryNekl
2003-12-10 13:08
2004.01.09
Типы данных


1-25303
Oleg__
2003-12-22 20:03
2004.01.09
Панели


3-25240
GameBoy
2003-12-10 22:49
2004.01.09
Эксклюзивный режим


3-25228
AlexA
2003-12-11 10:13
2004.01.09
Возращение всех множеств в ХП


1-25393
Sasha_M
2003-12-24 19:30
2004.01.09
Как в Tlistview при нажатии клавиши отметить выбранный





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