![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Привет народ, помогите кто может ! [D6, Win2k]
PETR © (2002-05-21 15:08:00)Тут приведен код,смысл которого, передвижение группы пикселей по canvas формы. Передвигается нормально, но медленно .Я начал недавно изучать DELPHI.Может стоит чегото поменять в коде а ?
procedure TForm1.Button1Click(Sender: TObject);
begin
canvas.TextOut(0,0,"P");
e:=200;
timer1.Interval:=1;
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
t:=t+1;
for x:=0+w to e+w do
begin
label1.Caption:=inttostr(x);
a:=canvas.Pixels[(e+w)-x,y];
canvas.Pixels[((e+w)-x)+1,y]:=a;
end;
label2.Caption:=inttostr(y);
y:=y+1;
if y=11 then
begin
w:=w+1;
y:=0;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
timer1.Enabled:=false;
end;
end.
PETR (2002-05-21 15:34:00) [1]Спасибо попробую!!!
PVOzerski (2002-05-21 15:27:00) [2]Про сути-то у Вас путь правильный... Смотря какое ускорение надо и чем Вы жертвовать согласны... Если хватит ускорения раза в полтора-два, переделайте кусок на WinAPI: вместо property pixels
работайте через SetPixel и GetPixel (параметр DC берите из
Canvas.Handle). Но, возможно, быстрее будет, если Вы сделаете следующее (но тут уж проверяйте сами, мне недосуг...):
растянете по форме tImage, в нём сделаете picture.bitmap.pixelformat:=pf24bit и будете добираться до точек через ScanLine.
PETR (2002-05-21 15:26:00) [3]чуть-чуть попадробней пожалуйста !!!!
MBo (2002-05-21 15:16:00) [4]используй scanline. есть и другие методы
PETR (2002-05-21 15:15:00) [5]Неужели не поможите!!!!!!!!!!!