![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Без окна [Delphi, Windows]
DNT © (2002-11-30 17:44:00)Объясните плз, как в программе без формы обрабатывать сообщения виндов?
Спасибо!
Vladimir Kladov (2002-12-04 10:18:00) [1]Вроде бы начальный вопрос был "без формы"?
while PeekMessage( Msg {:TMsg}, ..., pm_noremove ) do
if Msg.message = my_message then
...
или что-то в это роде. Зачем форма? А, некуда послать. Так это тоже просто: PostThreadMessage, форма не нужна, нужен id нити.
SPeller (2002-12-01 13:14:00) [2]
> Это у меня с просони, или действительно Dummy нет? - так
> работать и не будет, а больше вылетать. См. ЧаВо.
Этот вопрос обязан быть в ФАКах на первом месте :-)
Gandalf (2002-12-01 11:23:00) [3]
> Function WndProc( var Msg: tMsg; var Rslt: Integer ): Boolean;
Это у меня с просони, или действительно Dummy нет? - так работать и не будет, а больше вылетать. См. ЧаВо.
SPeller (2002-12-01 04:01:00) [4]
Function WndProc( var Msg: tMsg; var Rslt: Integer ): Boolean;;
begin
Result := False;
if msg.message=wm_user then
begin
//...
Result := True;// По необходимости, если больше не надо обрабатывать это сообщение.
end
DNT (2002-11-30 19:12:00) [5]Подкинь плз кусочек кода. Мой не работает:
Function WndProc( var Msg: tMsg; var Rslt: Integer ): Boolean;
begin
if msg.message=wm_user then
begin
//...
end;
end;
begin
form:=NewForm(Applet,"Advanced Memory Manager v2.0");
form.OnMessage :=TOnMessage(MakeMethod(nil,@WndProc));
run(form);
end.
Gandalf (2002-11-30 19:09:00) [6]
> Как мне например отловить WM_USER или WM_USER+1?
Как обычно, OnMessage.
DNT (2002-11-30 18:06:00) [7]Спасибо.
Только вот не получается.
Как мне например отловить WM_USER или WM_USER+1?
Примерчик бы небольшой, я разберусь.
Спасибо!
SPeller (2002-11-30 17:49:00) [8]Ну как, как... Делаешь невидимое окно и обрабатываешь OnMessage. По-дргомы ты никаких сообщений не получишь.