Главная страница
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.022 c
8-82867
mk2002
2002-07-15 21:58
2002.11.25
TPicture


14-82972
Zhirnov Maxim
2002-11-04 18:53
2002.11.25
Расскажите про ICQ


1-82863
Combo
2002-11-11 10:59
2002.11.25
ComboBox ы и их обработчики


4-83081
daan_m
2002-10-12 12:10
2002.11.25
Как запустить прогу на удалённом компе


3-82637
AtoL
2002-11-05 12:10
2002.11.25
Можно ли узнать количество записей в TDBGrid?