Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
1-82735
France
2002-11-14 20:33
2002.11.25
Меню без подменю


3-82632
Shen74
2002-11-05 17:48
2002.11.25
Дублирование записей в таблице.


14-82997
The_Vizit0r!
2002-11-07 12:39
2002.11.25
А где можно найти?


6-82905
Nikolas ShmuS
2002-09-25 01:06
2002.11.25
Задачка = Проверить есть ли комп в сети


1-82794
Live_Aus_Berlin
2002-11-13 16:27
2002.11.25
У кого нибудь есть исходники проги, которая считает производные




   Наверх