Ĺadny brzuch
czesc mam tablice wspolrzednych i program ktory laczy te punkty rysujac kreseczki ale chce zeby bylo widac jak on je laczy i wstawilem Timer ... ale cos mi nie wychodzi
przy starcie programu OnCreate
Timer1.Enable:=false;
po kliknieciu w button wlacza sie zegar
procedure TForm1.Button3Click(Sender: TObject); begin Timer1.Enable:=true; end;
... i dalej mam podwojna petle ktora rysuje linie
procedure TForm1.Timer1Timer(Sender: TObject); var i,j: Integer; begin for j:=... to ... do begin Timer1.Enabled:=true; Image1.Canvas.MoveTo(x,y); for i:=... to ... do begin Timer1.Enabled:=false; Image1.Canvas.LineTo(x,y); end; end; end;
Timer1.Interval:=2000;
... i program rysuje mi ale wszystkie linie po uplywie 2 sec , a ja chce zeby narysowal pierwsza linie odczekal 2 sec i narysowal nastepna
jak to zrobic ?? jestem pewien ze to banal ale jakos nie potrafie... licze na wasza pomoc
Rysuj w wątku używając sleep(2000) lub pod przyciskiem i użyj takiego sleep-a:procedure _Sleep(s:integer); var i:integer; begin i:=gettickcount; if s>20 then repeat Application.ProcessMessages; until gettickcount-i>=s; end;
procedure TForm1.Button1Click(Sender: TObject); var i,j: Integer; begin for j:=... to ... do begin Image1.Canvas.MoveTo(x,y); for i:=... to ... do begin Sleep(2000); Image1.Canvas.LineTo(x,y); end; end; end;
jak zrobilem cos takiego to mi caly program staje i wraz rysuje wszystkie linie naraz
Zamiast Sleep(2000) daj _sleep(2000); i skopiuj sobie tę procedurkę, co ją Ci podałem (przed button1click) :rolleyes:
Użytkownik Cyrkiel edytował ten post 12 styczeń 2006, 16:05
ok dziala , wielkie dzieki, ale wyskakuje ostrzerzenie
[Warning] Unit1.pas(62): Combining signed and unsigned types - widened both operands
i jeszcze pytamko co robi to cos ;]
gettickcount
1. To nic :)
2. Oblicza czas od uruchomienia systemu podany z ms ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
przy starcie programu OnCreate
Timer1.Enable:=false;
po kliknieciu w button wlacza sie zegar
procedure TForm1.Button3Click(Sender: TObject); begin Timer1.Enable:=true; end;
... i dalej mam podwojna petle ktora rysuje linie
procedure TForm1.Timer1Timer(Sender: TObject); var i,j: Integer; begin for j:=... to ... do begin Timer1.Enabled:=true; Image1.Canvas.MoveTo(x,y); for i:=... to ... do begin Timer1.Enabled:=false; Image1.Canvas.LineTo(x,y); end; end; end;
Timer1.Interval:=2000;
... i program rysuje mi ale wszystkie linie po uplywie 2 sec , a ja chce zeby narysowal pierwsza linie odczekal 2 sec i narysowal nastepna
jak to zrobic ?? jestem pewien ze to banal ale jakos nie potrafie... licze na wasza pomoc
Rysuj w wątku używając sleep(2000) lub pod przyciskiem i użyj takiego sleep-a:procedure _Sleep(s:integer); var i:integer; begin i:=gettickcount; if s>20 then repeat Application.ProcessMessages; until gettickcount-i>=s; end;
procedure TForm1.Button1Click(Sender: TObject); var i,j: Integer; begin for j:=... to ... do begin Image1.Canvas.MoveTo(x,y); for i:=... to ... do begin Sleep(2000); Image1.Canvas.LineTo(x,y); end; end; end;
jak zrobilem cos takiego to mi caly program staje i wraz rysuje wszystkie linie naraz
Zamiast Sleep(2000) daj _sleep(2000); i skopiuj sobie tę procedurkę, co ją Ci podałem (przed button1click) :rolleyes:
Użytkownik Cyrkiel edytował ten post 12 styczeń 2006, 16:05
ok dziala , wielkie dzieki, ale wyskakuje ostrzerzenie
[Warning] Unit1.pas(62): Combining signed and unsigned types - widened both operands
i jeszcze pytamko co robi to cos ;]
gettickcount
1. To nic :)
2. Oblicza czas od uruchomienia systemu podany z ms ;)