![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форма и обработка сообщений [D7, 2000, XP]
danger © (2007-01-09 12:44:00)Во время работы моей программы нужно, чтоб обрабатывались пользовательские сообщения. Делаю так: перекрываю WndProc главной формы своим обработчиком, в котором идет разбор сообщений. Все работает отлично, когда форма отображается на экране, но стоит свернуть приложение в значок - ничего не работает. Как сделать так, чтоб можно было посылать сообщения приложению, и организовать их обработку, вне зависимости от статуса главной формы или любой другой формы?
Danger (2007-01-09 13:35:00) [1]
> Посылай сообщения не окну главной формы, а главному окну
> приложения (Application.Handle), разбор/диспетчеризацию
> сообщений осуществляй в обработчике Application.OnMessage
Вот это стоит попробовать.
Спасибо.
oxffff (2007-01-09 13:32:00) [2]Есть же еще и Tobject.DefaultHandler?
Сергей М. (2007-01-09 13:23:00) [3]
> danger
Посылай сообщения не окну главной формы, а главному окну приложения (Application.Handle), разбор/диспетчеризацию сообщений осуществляй в обработчике Application.OnMessage
Danger (2007-01-09 13:17:00) [4]Конкретизирую. Всю обработку событий повесил на WndProc главной формы, когда форма отображена на экране - все нормально обрабатывается, когда сворачиваем приложение - главная форма не отображается - оконный обработчик не работает - пользовательские сообщения не обрабатываются. Куда можно прицепить обработку пользовательских сообщений, чтобы все работало вне зависимости от статуса главной формы или других форм?
danger (2007-01-09 13:11:00) [5]
> Гм. А чем не устраивает TForm1 = class(TForm) private
> procedure WmUserMsg (var Msg: TMessage); message WM_USERMSG;
Приходится обрабатывать большое количество разнообразных пользовательских сообщений, проще перекрыть обработчик и там разбирать сообщения по очереди, чем для каждого сообщения создавать обработчик.
Сергей М. (2007-01-09 12:50:00) [6]
> стоит свернуть приложение в значок
Приложение нельзя "свернуть в значок".
> ничего не работает
У тебя ошибка в программе
Джо (2007-01-09 12:48:00) [7]Гм. А чем не устраивает
TForm1 = class(TForm)?
private
procedure WmUserMsg (var Msg: TMessage); message WM_USERMSG;