Форум: "Основная";
Текущий архив: 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.011 c