![]() |
|
#1
|
|||
|
|||
![]() Во листинг:
Код:
procedure TForm1.Timer1Timer(Sender: TObject); Label t1; var v1,EndTime10:integer; H,M,S:Byte; begin EndTime10:=10; v1:=0; t1: EndTime10:=EndTime10-1; S :=EndTime10 mod 60; M :=EndTime10 div 60 mod 60; H :=EndTime10 div 3600; Edit1.Text :=IntToStr(H)+':'+IntToStr(M)+':'+IntToStr(S); if EndTime10>0 then begin Edit1.Text :=IntToStr(H)+':'+IntToStr(M)+':'+IntToStr(S); v1:=v1+1; Edit4.Text := IntToStr(v1); sleep(1000); goto t1; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled:=True; end; end. Должен выводить каждый виток цикла (виток цикла 1 сек) в поля Edit1, Efdit4, но выводит лишь последнее значение. Не пойму где ошибка. Последний раз редактировалось Admin, 11.01.2018 в 19:20. |
#2
|
||||
|
||||
![]() Оффтоп: пжлст, оформите "листинг" тегом [СODE]...[/СODE]
Непонятная конструкция, типо таймера обратного отсчёта, зачем здесь TTimer, он лишний, но если так задумано, тогда так Код:
procedure TForm1.Timer1Timer(Sender: TObject); Label t1; var v1,EndTime10:integer; H,M,S:Byte; begin Timer1.Enabled:= false; EndTime10:=10; v1:=0; t1: dec(EndTime10); S:= EndTime10 mod 60; M:= EndTime10 div 60 mod 60; H:= EndTime10 div 3600; Edit1.Text:= IntToStr(H) + ':' + IntToStr(M) + ':' + IntToStr(S); if EndTime10>0 then begin Edit1.Text:= IntToStr(H) + ':' + IntToStr(M) + ':' + IntToStr(S); inc(v1); Edit4.Text:= IntToStr(v1); Sleep(1000); Application.ProcessMessages; goto t1; end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |