![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обмен сообщениями внутри сервиса [D6, Win2k]
AlexanderSK © (2004-07-29 13:59:00)Разрабатываю сервис для Win2k. Форм он не имеет, но внутри него нужно реализовать обработку сообщений, посылаемых из других модулей этого же приложения. Подскажите, пожалуйста, как это лучше реализовать?
Заранее благодарен!
GanibalLector (2004-07-30 01:50:00) [1]RegisterWindowMessage
Digitman (2004-07-29 14:11:00) [2]посылай сообщения трэду сервиса, например,вызовом PostThreadMessage() .. ID трэда сервиса хранится в св-ве TService.ServiceThread.ThreadId
в обработчике TService.OnExecute() в этом случае следует организовать цикл выборки/диспетчеризации этих сообщений по примерному шаблону
var
Msg: TMsg;
begin
while not Terminated do
begin
WaitMessage;
if PeekMessage(Msg, 0, SM_CONTROL, SM_CONTROL, PM_REMOVE) then
Dispatch(Msg.Message)
else
ServiceThread.ProcessRequests(False);
end;