![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Временная задержка между событиями [D7, XP]
Интересующийся © (2006-04-24 18:08:00)Уважаемые, подскажите тёмному, как задать временную задержку между двумя событиями. Например нажимаешь кнопку, а эффект наступает с "оттяжкой".
ssk (2006-04-25 09:11:00) [1]>>а как оттянуться еще не предлагали
предлагаю портвейном. белым. крымским.
Anatoly Podgoretsky (2006-04-25 08:58:00) [2]Германн © (25.04.06 03:09) [7]
Неправда ваша, предложили как сделать задержку, а как оттянуться еще не предлагали.
Германн (2006-04-25 03:09:00) [3]2 Интересующийся (24.04.06 18:08)
Если ты всё ещё интересуешься, то лучше опиши свою задачу. Поскольку "оттяжку" уже предложили. А вот насчёт "эффекта" есть сомнения.
Palladin (2006-04-24 23:55:00) [4]
> Интересующийся
ты раз такой Интересующийся, то может снизойдешь и поинтересуешься постом Юрия Зотова?
Мефисто (2006-04-24 19:42:00) [5]Интересующийся (24.04.06 19:24) [3]
Знаю, потому и просмайлился
>> (ой, лучше такого не делать :) )
AlexanderMS (2006-04-24 19:41:00) [6]
> TTimer.Enable := True
> TTimer.OnTimer
> ....
> TTimer.Enable := False
Конечно же, так:
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := true
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
<действия>
end;
Интересующийся (2006-04-24 19:24:00) [7]>> Мефисто
Задержка по большому циклу на машинах разной вычислительной мощности "задерживается" на разное время! Это не есть хорошо.
Юрий Зотов (2006-04-24 18:15:00) [8]GetTickCount в цикле с Application.ProcessMessages.
Sleep
TThread.WaitFor
MsgWaitForMultipleObjects с WAIT_TIMEOUT
и еще куча функций, названия которых начинаются с WaitFor...
Простейший (но не лучший) вариант:
procedure TForm1.Button1Click(Sender: TObject);
begin
Sleep(3000);
ShowMessage('Это была задержка на 3 секунды')
end;
Мефисто (2006-04-24 18:15:00) [9]Sleep
Или цикл с громадным вычислением (ой, лучше такого не делать :) )
или
TTimer.Enable := True
TTimer.OnTimer
....
TTimer.Enable := False