Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.036 c
3-1103106176
Pavelkq
2004-12-15 13:22
2005.01.16
Выбор типа базы.


1-1104518771
Cheguevara
2004-12-31 21:46
2005.01.16
Как создать в листбоксе итем содержащий путь к файлу


14-1104315639
MAINUSER
2004-12-29 13:20
2005.01.16
ПРОГРАММИСТЫ ОБЪЕДИНЯЙТЕСЬ


3-1102789459
Dell3r
2004-12-11 21:24
2005.01.16
Сетевая многопользовательская программа


3-1102756670
OlegL
2004-12-11 12:17
2005.01.16
dbf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский