Привет
Подскажите как сделать чтобы программа ничего не делала n секунд.
Timer1.Enable:=true;
Timer1.Interval:=1000;
while Timer1.Enable=true do..
Почему сваливается б бесконечный цикл(из цикал не вызывает событие ontimer)?
Как сделать правильно?
Второй вопрос, то же самое только время 'спячки' должно случайно выбираться в диапазоне от 10 до 60 секнуд?
Спасибо!
таймер
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Почему с использованием такой конструкции окно появляется не сразу а после того как программа отработает то есть через 5 сек?
procedure TForm2.FormCreate(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('1');
sleep(5000);
Memo1.Lines.Add('2');
end;
Так как делать то чтоб правильно было? Может есть рабочий примерчик на TTimer?
procedure TForm2.FormCreate(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('1');
sleep(5000);
Memo1.Lines.Add('2');
end;
Так как делать то чтоб правильно было? Может есть рабочий примерчик на TTimer?
1. Timer.Enabled не сваливается в False по событию OnTimer. Он работает себе и работает, каждую секунду вызывает обработчик OnTimer.
Если нужна случайная спячка от 10 до 60 секунд - это
sleep((random(51)+10)*1000);
Или, извратно
Timer1.Enabled:=true;
Timer1.Interval:=(random(51)+10)*1000;
while Timer1.Enable=true do begin end;
А на OnTimer повесить Timer1.Enabled=false;
2. Повесь это не на FormCreate, а на FormShow. FormCreate вызывается в момент создания формы, но до ее показа. Т. е. пишет в мемо строку, спит 5 секунд, пишет другую строку. После этого обработчик OnCreate заканчивается, и только после этого форма выводится на экран
Если нужна случайная спячка от 10 до 60 секунд - это
sleep((random(51)+10)*1000);
Или, извратно
Timer1.Enabled:=true;
Timer1.Interval:=(random(51)+10)*1000;
while Timer1.Enable=true do begin end;
А на OnTimer повесить Timer1.Enabled=false;
2. Повесь это не на FormCreate, а на FormShow. FormCreate вызывается в момент создания формы, но до ее показа. Т. е. пишет в мемо строку, спит 5 секунд, пишет другую строку. После этого обработчик OnCreate заканчивается, и только после этого форма выводится на экран
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Подобная тема уже обсуждалась, зачем вам глючный Sleep подвешивающий систему - юзайте вот это
Код: Выделить всё
procedure pause;
var
h: THandle;
begin
h := CreateEvent(nil, true, false, ' ');
WaitForSingleObject(h, 10000);
CloseHandle(h);
end;