![]() |
|
#1
|
||||
|
||||
![]() При нажатии на кнопку BitBtn1 у меня одновременно должны начать выполняться процедура RunRight(0); и в LEdit4 показываться числа от 15 до 0 с интервалом в 1 сек. :
Код:
procedure TForm1.BitBtn1Click(Sender: TObject); var p:integer; begin RunRight(0); for i:=5 downto 1 do begin LEdit4.Text:=inttostr(i); sleep(1000); Application.ProcessMessages; LEdit4.Text:=inttostr(i-1); end; end; Как сделать, чтоб они выполнялись одновременно? Может использовать потоки? Последний раз редактировалось lmikle, 22.06.2011 в 20:30. |
#2
|
||||
|
||||
![]() Если хотите "параллельное" выполнение - то либо потоки, либо ПЕРЕД запуском процедуры RunRight(0) поставить запуск таймера с интервалом в 1мс:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject); begin Timer1.Interval:=1000; Timer1.Enabled:=true; LEdit4.Text:='15'; RunRight(0); end; ... procedure TForm1.Timer1onTimer(Sender: TObject); var i:integer; begin i:=strtoint(LEdit4.Text) dec(i); if i<0 then begin Timer1.Enabled:=false; exit; end; LEdit4.Text:=inttostr(i); end; jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
![]() Многопоточность вообще замечательная вещь, одного TThread будет достаточно.
Пишу программы за еду. __________________ |