Вниз
Скачать: CL | DM;

Перерисовка Image   Найти похожие ветки 

 
учу   (2003-10-17 11:03) [0]

Некоторая процедура выполняет огромное количество операций (Polygon, Polyline, etc.) рисования на Image. Image расположен на активной форме. В процедуру передается Image...hdc. Все рисование занимает много времени. Как во время этого рисования выполнять перерисовку, так чтобы вновь нарисованные объекты отображались на экране. Методы типа Image.Repaint отнимают много времени. Заранее спасибо.


 
BOA_KAA ©   (2003-10-17 11:07) [1]

Ыть...
Application.ProcessMessages


 
учу   (2003-10-17 11:39) [2]

Application.ProcessMessages после каждой операции рисования приводит к неполному/неправильному результату. Часть объектов не отображается или отображается криво, не поймешь. В чем может быть проблема?


 
BOA_KAA ©   (2003-10-17 12:03) [3]

Код приведи


 
учу   (2003-10-17 12:32) [4]


while ind<sl.Count-1 do
begin
Inc(ind); //в текстовом файле сохраняются координыты вершин
str:=Copy(sl.Strings[ind],7, 20);
nor:=StrToInt(str);
SetLength(VertexesCounts,nor);
vcount:=0;
vind:=0;
for j:=1 to nor do
begin
Inc(ind);
vertexes:=StrToInt(sl.Strings[ind]);
VertexesCounts[j-1]:=vertexes;
Inc(vcount,vertexes);
SetLength(Points,vcount);
for i:=0 to vertexes-1 do
begin
Inc(ind);
str:=sl.Strings[ind];
SpaceInd:=Pos(" ",str);
x:=StrToFloat( LeftStr(str,SpaceInd) );
y:=StrToFloat( RightStr(str,Length(str)-SpaceInd) );
Points[vind].X:=Round((x-minx)*WorkDrawInfo.Scale);
Points[vind].Y:=Round((maxy-y)*WorkDrawInfo.Scale);
Inc(vind);
end;
end;
if nor=1 then
Polygon(workHDC,Points[0],Vcount)
else PolyPolygon(workHDC,Points[0],VertexesCounts[0],nor);
Application.ProcessMessages;
end;

Сначала у меня не было Application.ProcessMessages.
После всего перерисовывать Image (image.repaint)



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

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



Память: 0.45 MB
Время: 0.014 c
1-98578
lex7
2003-10-20 10:48
2003.10.30
Как выгрузить зависшую программу?


1-98634
off
2003-10-17 14:37
2003.10.30
Вывод на печать?


1-98609
kukuikar
2003-10-14 18:08
2003.10.30
Как WinAmp


1-98668
VladDD
2003-10-20 15:03
2003.10.30
Инициализация объекта объектом такого-же класса в массиве


1-98688
Abikos
2003-10-20 19:05
2003.10.30
как запретить закрытие приложения через TaskManager ??




   Наверх