Главная страница
    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.013 c
4-25659
Dido
2003-11-08 05:25
2004.01.09
Как узнать заголовок активного окна?


14-25505
vajo
2003-12-16 16:58
2004.01.09
Delphi + Реестр


1-25333
vixic
2003-12-22 14:52
2004.01.09
Свойство ObjectText


1-25420
чайник
2003-12-17 15:24
2004.01.09
Delphi7 и Excel2000


3-25204
Inkotex
2003-12-11 19:36
2004.01.09
Работа с изображениями





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