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

Вниз

Мигание TCanvas   Найти похожие ветки 

 
Soft(Unpowered Kiborg)   (2002-08-04 14:54) [0]

Здравствуйте.
Возникла проблемма. При перерисовке данных на компонете наследованную с TPaintBox через Canvas происходит эффект мигания. В досе это решалось через смену видео страниц:) А в виндовсе слышал, что можно как-то запретить обновления окна а потом разрешить, но не знаю как.


 
MJH ©   (2002-08-04 15:18) [1]

делаешь оверрайд на класс TPaintBox,
в котором отключаешь перерисовку бэкграунда

type TMyPaintBox=Class(TPaintBox)
private
procedure WMERASEBKGND(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
end;

implementation
procedure TMyPaintBox.WMERASEBKGND(var Msg: TWMEraseBkgnd);
begin
//Stops flicker
end;

соответсвенно нужно будет эту компоненту зарегистрировать
RegisterComponents();


 
Soft(Unpowered Kiborg)   (2002-08-04 16:27) [2]

Спасибо, но не подойдет. У меня при перерисовки топологии инет-сети происходит перетирка старых image-й при помощи

Canvas.Rectangle(Rect);

Это и приводит к миганию. Мне нужно чтоб можно было отключить изменения, нарисовать и потом чтоб все нарисованное обновилось.

Может создавать свой Canvas рисовать на нем и присваивать текущему? Какие здесь проблеммы ожидаются?


 
Goobit   (2002-08-04 17:40) [3]

Для TPaintBox можно, конечно, сделать буфер в виде TBitmap с такими же размерами и в OnPaint рисовать туда, а потом копировать этот буфер уже на канву TPaintBox"а.

А вообще можно сделать наследника от TCustomPanel (или вообще от TWinControl), где есть public-свойство DoubleBuffered, которое создает такой буфер при каждой перерисовке автоматически. В классе переопределяешь метод TCustomPanel.Paint и рисуешь в канву панели все, что угодно. И только после выхода из метода класс перерисует все окно целиком (в TWinControl.WMPaint).


 
MJH ©   (2002-08-04 17:47) [4]

тебе сказал в чем проблема....
короче....на OnPaint делаешь bitblt()
бэкграунд забиваешь как я сказал
на отрисовку тоже bitblt()


 
Soft(Unpowered Kiborg)   (2002-08-05 01:23) [5]

Спасибо уже решил проблемму. Создаю в рантайме объект Tpicture. Через битмап рисую а затем вывожу на Canvas. Без тормозов и мигания.

Правда в 1280x1024 32bit цвет на моем K6-350 подтомаживает:)


 
MJH ©   (2002-08-05 01:56) [6]

однако выход.....но ты про FastLib слышал? вроде как на DelphiGFX даже на него сcылочка была



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

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-83005
Красная Майка
2002-10-18 13:57
2002.11.25
Встреча мастаков в Московии.


1-82775
Оля
2002-11-15 17:08
2002.11.25
*.WAV наткнулась на один пример, но он у меня не работает


14-82937
Oleg_Gashev
2002-11-05 22:08
2002.11.25
Стоит почитать


6-82888
qqqqq111
2002-09-19 05:32
2002.11.25
Download manager для LAN


14-83003
Николай Быков
2002-11-08 01:24
2002.11.25
Помогите найти статью