Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.067 c
14-25523
Думкин
2003-12-19 05:34
2004.01.09
С днем рождения! 19 декабря.


1-25319
Боян Георгиев
2003-12-25 15:32
2004.01.09
Алгоритм


3-25226
Петров Денис
2003-12-11 13:58
2004.01.09
Cannot prepare a CREATE DATABASE/SCHEMA statement


1-25308
lucky4me
2003-12-25 14:07
2004.01.09
как вставить кнопку/меню в OutlookExpress


6-25479
CaDIsT
2003-11-03 09:30
2004.01.09
TTcpServer и TTcpClient