Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ время

Автор: Caranthir 17.03.2007 23:54

подскажите пжл: как выполнть операцию к примеру через 1мин, не используя Sleep или WaitForSigleObject

Автор: volvo 18.03.2007 0:02

Таймер... Поставь на минуту, и при получении сообщения от таймера (т.е. когда минута пройдет) выполняй свою операцию...

Автор: Caranthir 18.03.2007 1:18

а куда ставятся Timer1.Enabled:=true; и Timer1.Enabled:=false; ....


procedure TForm1.Button1Click(Sender: TObject);
begin
while true do
begin
Timer1.Enabled:=true;
end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
//код
Timer1.Enabled:=false;
end;


так никакой задержки нет unsure.gif

Автор: мисс_граффити 18.03.2007 1:32

делая Timer1.Enabled:=что-нибудь ты только включаешь/выключаешь таймер.
а вот действие, которое тебе нужно выполнить через минуту (после чего?) как раз запихивается в обработчик TForm1.Timer1Timer

Автор: volvo 18.03.2007 1:32

Цитата
так никакой задержки нет

А вот так - есть:
procedure TForm1.Button6Click(Sender: TObject);
begin
Timer1.Enabled := true;
end;



procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text := inttostr(strtoint(Edit1.Text) + 1);
end;

(изначально: timer1.enabled = false, а edit1.text = '1')

Автор: Caranthir 18.03.2007 2:31

ага, точно, что то цикл ни к месту )))
спасиб)