Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.21.5] |
|
Сообщ.
#1
,
|
|
|
Люююди помогитееее плиззз....
Не могу разобраться, как принять посланное сообщение программе.. Не могли бы показать неучу на примере отсылку и чнение комманд по средствам фуенкций GetMessage и SendMessage? Заранеее благодарствую. |
Сообщ.
#2
,
|
|
|
Смотря как и куда посылаешь.
|
Сообщ.
#3
,
|
|
|
Nu dopustim mne nu#no poslatj programme kakojnibudj tekst/commandu. ona eto pirnimaet i vipoljaet kakujunibudj funckiju tipa na#atija po knopke itd. Naprimer kak v winamp'e sdelano
WM_COMMAND=40047 (Knopka stop) SendMessage(hwndWinamp,WM_COMMAND, data, id); Re6il podobnoe realizovatjv svoej programke...no kak? |
Сообщ.
#4
,
|
|
|
Ну, гляди. Тут все просто и прозрачно, рекомендую почитать доки по API вообще. Я про твою прогу ничего не знаю, поэтому приведу два варианта - с формой и без. Давай сначала без так проще. Ты вручную создаешь окно и в цикле обработки сообщений добавляешь обработку своего. Свои сообщения декларируются от WM_USER и вверх. Так как на API писать нелегко, то у тебя, скорее всего, есть форма. А тогда проблема решается просто: пишешь в секцию private у объявления формы в твоем unit'е такую строку:
procedure Hook(var Msg: TMessage); message WM_USER+666; Имя процедуры, переменной и значение после message - любое (message WM_USER+X или константу такую заведи). Тип лучше ставить TMessage, так проще работать с ним. Ну и дальше, после implementation пишешь обработчик: procedure TForm1.Hook(var Msg: TMessage); begin ...blablabla end; По приходу =) сообщения выполнится blablabla, а в Msg будет сообщение, wParam, lParam и все что нужно для жизни Даже будет старшее слово и младшее у wParam и lParam. Если ты хватаешь не юзерное сообщение, а виндовое (например, WM_COMMAND), после своей обработки тебе надо унаследовать стандартный обработчик (хоть это и гимор): if Msg.wParam=150 then begin // сообщение лично проге ...blablabla end else inherited; В объявлении даже не надо писать override, так как сообщение - это не метод И вообще, читай справку по Дельфям (в данном случае статья Message Handlers) ..::[ ShTiRLiC ]::.. |
Сообщ.
#5
,
|
|
|
Cпасибо мэн!
Прога у меня чтото вроде Вордовской скрепки. Посылаю ей команду, она делает анимацию... Значит WM_USER'a мне будет достаточно? |
Сообщ.
#6
,
|
|||||
|
читай внимательно что штырлиц пишет:
т.е. к WM_USER надо что-то прибавить и получица твой мессадж (т.е. его константа) например так WM_MYCOMMAND = WM_USER + 1; |