Вниз
Скачать: 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.036 c
3-40890
Barada
2003-10-20 15:07
2003.11.13
Как вытащить список доступных LANGDRIVER ?


14-42045
Malkolinge
2003-10-15 15:53
2003.11.13
Хлопци е така гра - Starcraft.


14-41957
Butterfly
2003-10-17 14:50
2003.11.13
Про попугаев


3-40810
NewD
2003-10-22 09:46
2003.11.13
Как подключиться через ADO к SQL SERVER на другой машине


3-40991
mari
2003-10-16 15:43
2003.11.13
получается таблица отсортированная в обратном порядке




   Наверх