Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизПосылка сообщения. Найти похожие ветки
← →
Новичек © (2005-01-04 13:08) [0]Здравствуйте, уважаемые Мастера.
Дана вот такая программа:program Project1;
uses Windows, Messages, Forms;
Const
WM_MYMSG = WM_USER + 10;
{$R *.res}
begin
SendMessage(Application.Handle, WM_MYMSG, 0,0);
end.
Просветите, пожалуйста, меня:
- как объявить и использовать процедуру приема сообщения?
- можно ли избавиться от "uses Forms" и кому в таком случае отправлять сообщение?
С уважением.
← →
Новичек © (2005-01-04 13:15) [1]Можно, наверное, воспользоваться HWND_BROADCAST, но как объявить процедуру перехвата сообщения?!!!
← →
KSergey © (2005-01-04 13:42) [2]Послать сообщение -кому хотим? Своей же программе или другой запущеной?
> но как объявить процедуру перехвата сообщения?!!!TMyForm = class(TForm)
...
publuc
procedure WMMyMsg(var Msg: TMessage); message WM_MYMSG;
.....
procedure TMyForm.WMMyMsg(var Msg: TMessage);
begin
...
end;
← →
Новичек © (2005-01-04 13:52) [3]
> Послать сообщение -кому хотим? Своей же программе или другой
> запущеной?
Своей.
← →
KSergey © (2005-01-04 13:56) [4]Своей - а она консольная или нет? Есл нет - хочется на "чиста WinAPI"?
Если тоже нет - тогда не понятно чем Forms помешал.
← →
Новичек © (2005-01-04 14:02) [5]Forms отнимает много ресурсов...
Я вот что думаю: не получится ничего без оконной процедуры, а она как раз из Forms и пришла.
← →
KSergey © (2005-01-04 14:28) [6]А ответить таки на вопросы из [4] KSergey © (04.01.05 13:56) - не судьба? Ну просто хочется таки прояснить наконец ситуацию-то!
К стати, не просто без "оконной процедуры", но и без окна сообщение некому слать ;)
А вообще не очень понятна цель посылки сообщения. Какова она?
← →
KSergey © (2005-01-04 14:31) [7]А еще есть PostThreadMessage
← →
Новичек © (2005-01-04 14:35) [8]Хочется на "чиста API" :-)
А цель проста - хочется написать монитор за сокетом.
Т.е. программку, не жрущую много ресурсов и тихо так себе наблюдающую за сокетом и при определенных данных на сокете послать самой себе сообщение и самой же обработать его.
← →
KSergey © (2005-01-04 14:50) [9]Зачем сообщение посылать??? Почему бы просто не обработать "тихо"??
← →
Новичек © (2005-01-04 14:57) [10]Это одно из заданий на понимание архитектуры Windows :-)
Все-таки непонятно, как объявить процедуру в этом случае:program Project1;
uses Windows, Messages, Forms;
Const
WM_MYMSG = WM_USER + 10;
{$R *.res}
begin
SendMessage(Application.Handle, WM_MYMSG, 0,0);
end.
Ведь нужен метод, а не просто процедура.
← →
KSergey © (2005-01-04 15:36) [11]Смотрим Application.OnMessage.
За одно - http://www.delphikingdom.com/helloworld/runtime_comp.htm
Это чтобы не было вопросов "а как его определить"
Вот только при таком подходе ни о каких WinAPI речи уже нет, разумеется. Тогда нефиг уже и выеживаться. Делаем нормальное приложение с формой и читаем [2].
Либо тогда уж делаем нормальное "чиста на API" приложение - тогда понимание куда что встроить придет автоматически
← →
Новичек © (2005-01-04 16:00) [12]
> Тогда нефиг уже и выеживаться.
Это я уже понял :-) Придется делать с формой.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.029 c