Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2008, 17:03   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
Восклицание Закрыть через 5 секунд

Подскажите как лучше сделать,нужно что бы модальная форма открылась и через 5 секунд закрылась,вот так написал ,но не работает

form2.ShowModal;
Sleep(5000);
Form2.Close;
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 06.07.2008, 17:13   #2
Artificial
Пользователь
 
Аватар для Artificial
 
Регистрация: 03.11.2007
Сообщений: 91
По умолчанию

Используй таймер)
Artificial вне форума Ответить с цитированием
Старый 06.07.2008, 17:20   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

А без тамера ни как нельзя
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 06.07.2008, 17:27   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Код:
form2.ShowModal;
Sleep(5000);
Form2.Close;
так не получится, т.к. после вызова формы2, ей передаётся управления, и вернётся оно к первой форме, к строчке sleep(5000) только после закрытия вручную формы2.
Выход: либо вторую форму делаем НЕ модальной, либо в событии OnShow у второй формы пишем это:
Код:
Sleep(5000);
Close;
zetrix вне форума Ответить с цитированием
Старый 06.07.2008, 17:27   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

а чем не устраивает таймер ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 06.07.2008, 18:21   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от zetrix Посмотреть сообщение
Выход: либо вторую форму делаем НЕ модальной, либо в событии OnShow у второй формы пишем это:
Код:
Sleep(5000);
Close;
zetrix, так тоже нельзя - Sleep целиком блокирует поток на пять (здесь) секунд и приложение будет просто висеть всё это время...

Цитата:
Сообщение от Михаил Юрьевич Посмотреть сообщение
А без тамера ни как нельзя
Можно. Но таймер - самый простой способ.
B_N вне форума Ответить с цитированием
Старый 06.07.2008, 18:24   #7
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можно не использовать таймер, а сделать задержку Delay.

Код:
Procedure Delay(Ms: Longint);
Var
TheTime: LongInt;
Begin
TheTime:= GetTickCount + Ms;
While GetTickCount < TheTime Do
Application.ProcessMessages;
End;
Всегда рад помочь!

Последний раз редактировалось Stilet; 07.07.2008 в 08:27.
Terran вне форума Ответить с цитированием
Старый 06.07.2008, 18:30   #8
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Спасибо,разобрался как без таймера
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 07.07.2008, 08:28   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
модальная форма открылась и через 5 секунд закрылась
Глупый вопрос - а зачем? И почему именно модальная??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2008, 23:43   #10
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

действительно! если уж модальная, то закрывать ее совсем безсмысленно, так как она предназначена для запросов пользователю. можно сделать проще: открыть форму, но не form2.ShowModal;, а просто form2.Show;
Sleep делать ненадо, как уже говорили. ИМХО использование таймера - не только самый простой, но и используемый!. Правда есть проблемы с ним: точно 5 сек. не отсчитаешь, потому что он делает тики не одинаковыми в зависимости от загружености системы. в дебри не залажу, но это так. А все таки, зачем изобретать велосипед?
Роман Радер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрыть все приложения Михаил Юрьевич Win Api 5 02.06.2008 21:30
Закрыть доступ к CD приводу Gorychev Операционные системы общие вопросы 5 04.05.2008 15:48
Закрыть доступ к файлу *.db Антон Шестаков БД в Delphi 6 05.01.2008 09:28
закрыть программу Var17 Общие вопросы Delphi 1 20.12.2007 10:06
как закрыть программу? Alar Общие вопросы Delphi 0 29.10.2006 20:22