Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Временная задержка между событиями [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо