Форум: "Media";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
ВнизМигание 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 вся ветка
Форум: "Media";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c