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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2015, 09:10   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Программа свернута. По верх всех окон вывести сообщение и закрыть через n-секунд

Мне нужно вывести текстовое сообщение из моей программы(она в этот момент свернута и не должна разворачиваться), а потом закрыть его программно через 3 секунды.
Я пробовал такой код, но как закрыть?
Код:
MessageBox(0, 'Сообщение', 'Информация',
MB_ICONINFORMATION + MB_OK + MB_SETFOREGROUND + MB_SYSTEMMODAL);
igrok111 вне форума Ответить с цитированием
Старый 14.09.2015, 09:30   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Включай таймер, отсчитывай 3с. и закрывай программу.
FaTaL вне форума Ответить с цитированием
Старый 14.09.2015, 09:42   #3
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Включай таймер, отсчитывай 3с. и закрывай программу.
какую программу? Мне нужно закрыть сообщение, а не программу. Как включить таймер на 3 сек я знаю, что писать в него?
igrok111 вне форума Ответить с цитированием
Старый 14.09.2015, 09:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Неа. Придется создавать свою форму, которая StayOnTop установлена, и на ней делать таймер. Модальными окнами да еще и стандартными виндовыми ИМХО не получится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2015, 12:27   #5
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

В общем я решил эту задачу таким методом:
Код:
var
  PID: DWORD;
begin
  GetWindowThreadProcessId(FindWindow('#32770', 'Информация'), @PID);
  if PID = GetCurrentProcessId then
    SendMessage(FindWindow('#32770', 'Информация'), WM_CLOSE, 0, 0);
Работает.

Последний раз редактировалось igrok111; 14.09.2015 в 13:57.
igrok111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести изображение в заданных координатах поверх всех окон (Пара строчек кода для не-программиста) mimoprohodil Помощь студентам 11 09.12.2015 14:07
Как сделать UserForm не по верх окон and150382 Microsoft Office Excel 40 16.02.2013 20:40
Delphi свернута ли программа? CAN-UKRAINE Помощь студентам 4 19.02.2012 18:40
Сообщение, которое нельзя закрыть в течении 30 секунд _-Re@l-_ Общие вопросы Delphi 4 26.03.2011 12:02
Закрыть через 5 секунд Михаил Юрьевич Общие вопросы Delphi 11 08.07.2008 10:43