Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.07;
Скачать: CL | DM;

Вниз

Функция SendMessage - посылка, принятие сообщений   Найти похожие ветки 

 
Andrey02   (2003-06-06 09:44) [0]

Как правильно работать с этой функцией?

В примере Delphi про функцию SendMessage:

1. Посылаем сообщение
SendMessage(Application.Handle, WM_USER+2000, 0, 0);

2. Ловим соообщение в FormCreate:
Application.OnMessage := AppMessage;

3. Обработчик полученного сообщения
procedure TMain.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_USER+2000 then
begin
ShowMessage("Сообщение WM_USER+2000");
Handled := True;
end;
end;

В отдельно взятых примерах
if Msg.message = WM_RBUTTONDOWN then ... - работает
SendMessage(Application.Handle, WM_CLOSE, 0, 0); - работает
А полностью - не работает.

Вопрос: Что-то нехватает, или есть ошибка?


 
pasha676   (2003-06-06 10:07) [1]

Пример пользовательского сообщения по Пачеко и Тейсксейре. Насколько я понял, тебе нужно именно пользовательское (или я ошибаюсь).

1) Обявляем сообщение. Как правило в константах.
форэкзампле - MyMess=WM_USER+177.

2) Объявляем обработчик. В описании класса (ну например в TForm1)
TForm1=class(TForm)
Procedure ResiveMyMess(var Msg:TMessage); message MyMess;

3) В юните описание самого приемника сообщений

TForm1.ResiveMyMess(var Msg:TMessage);
begin
сюда попадет, когда придет сообщение. тут все и делаем
Обработчик одним словом
end;

4) Как послать сообщение
PostMessage(Form1.Handle, MyMess,0,0);


Усе.


 
Игорь Шевченко ©   (2003-06-06 10:30) [2]

Application.OnMessage ловит только сообщения посланные по PostMessage. Для того, чтобы поймать сообщения посланные и по PostMessage и по SendMessage, необходимо явно объявлять обработчик сообщения у формы (или у любого наследника TWinControl, которому послыается это сообщение)

TMain = class(TForm)
....
private
procedure WMMyMessage(var Message : TMessage); message WM_MYMESSAGE;
....
end;



Страницы: 1 вся ветка

Текущий архив: 2003.08.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
4-20850
Yanis
2003-06-03 12:36
2003.08.07
Системное меню приложения.


1-20513
elf
2003-07-25 18:12
2003.08.07
Как получить Name и Caption компонента на котором находится мышь


1-20478
АлеКо
2003-07-25 04:36
2003.08.07
CompositeReport


7-20826
Fil
2003-05-25 13:49
2003.08.07
Как программно запустить файл с параметрами.


14-20790
Dmitriy O.
2003-07-22 11:06
2003.08.07
Я извиняюсь