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

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



Память: 0.46 MB
Время: 0.021 c
3-40805
Илайдж
2003-10-22 12:13
2003.11.13
MSSQL2K: user-defined function


1-41376
Rasil
2003-10-30 02:17
2003.11.13
Перемещение формы


3-40882
Nikitos
2003-10-19 18:28
2003.11.13
ПРоблема с нежелательным обновлением


1-41291
Dysan
2003-10-31 12:46
2003.11.13
Как распечатать содержимое формы?


3-40785
viper_cd
2003-10-24 21:38
2003.11.13
InterBase




   Наверх