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

Вниз

Как ускорить перерисовку   Найти похожие ветки 

 
ARTEMKA   (2003-10-25 21:10) [0]

Мастера я в проге перехватываю собитие WM_PAINT в обработчике рисую
ps:TPaintStruct;
dc:HDC;
begin
x:=ClientWidth;
y:=ClientHeight;

dc:=BeginPaint(Handle,ps);
PatBlt(dc,0,0,x,y,BLACKNESS);

for i:=1 to ((x-510)div 60)+1 do
begin
BitBlt(dc,50+i*60,0,60,59,btm[2].canvas.Handle,0,0,SRCCOPY);
end;
for i:=1 to ((x-574)div 60)+1 do
begin
BitBlt(dc,134+i*60,y-72,60,50,btm[7].canvas.Handle, 0,0,SRCCOPY);
end;
for i:=1 to ((y-385)div 60)+1 do
begin
BitBlt(dc,22,130+i*60,59,60,btm[4].canvas.Handle, 0,0,SRCCOPY);
end;
EndPaint(Handle,ps);
inherited;

но при изменении размеров формы, всё это так мерцает, что не приятно становится, можно ли сделать так чтоб прорисовка всего этого была не видна. Может я что не правильно делаю. Спасибо


 
ARTEMKA   (2003-10-25 22:01) [1]

Подскажите плз мастера


 
wicked ©   (2003-10-25 23:04) [2]

убери это:
> PatBlt(dc,0,0,x,y,BLACKNESS);

а вообще лучше рисуй тогда в TBitmap в памяти...


 
ARTEMKA   (2003-10-26 00:22) [3]

значит метод BeginPaint не осушествляет рисование в памяти а потом на канве, после Endpaint да?


 
sniknik ©   (2003-10-26 00:46) [4]

DoubleBuffered:= true; не помогает?


 
ARTEMKA   (2003-10-26 02:29) [5]

>>sniknik
а как этим пользоваться объясни плз


 
sniknik ©   (2003-10-26 02:35) [6]

procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:= true;
end;

уменьшает мерцание и одновременно жрет больше ресурсов (предварительная прорисовка формы в памяти), на некоторые компоненты не действует (в хелпе только TRichEdit упомянут).


 
Chlavik ©   (2003-10-26 02:03) [7]

Просто посмотри исходник VCl на щёт TwinControl.DoubleBuffered и всё станет ясно, я тоже этим страдаю...


 
miek ©   (2003-10-26 10:23) [8]

Перехватить событие WM_ERASEBKGND. Оч. сильно помогает иногда.



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
7-42197
iWorm
2003-08-27 03:54
2003.11.13
Клавиатура


3-40921
Sam Stone
2003-10-19 16:06
2003.11.13
mdb


3-40833
___Nikolay
2003-10-21 11:21
2003.11.13
Почему-то виснет....................................


6-41781
DSA
2003-09-11 16:44
2003.11.13
Генерация POST сообщений


3-40808
Denisiy
2003-10-22 12:10
2003.11.13
Подсобите с QReport