![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Как обработать отправленное сообщение окну. И как правильно послать:
Код:
SendMessage(Wnd, 0, 0, 0); ![]() |
#2
|
||||
|
||||
![]() Вот статья из DelphiWorld:
Код:
const MY_MESSAGE = WM_USER + 4242; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); // Handler that receive the Message procedure MessageReceiver(var msg: TMessage); message MY_MESSAGE; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var txt: string; begin txt := 'Hello World'; SendMessage(Form1.Handle, MY_MESSAGE, 0, DWORD(PChar(txt))); end; // To receive this custom Message that is addressed to form1.handle // you need a message handler. procedure TForm1.MessageReceiver(var msg: TMessage); var txt: PChar; begin txt := PChar(msg.lParam); msg.Result := 1; ShowMessage(txt); end; end. Код:
var wnd:hwnd; begin Wnd := FindWindow(nil,'Form2'); txt := 'Hello World'; SendMessage(wnd, MY_MESSAGE, 0, DWORD(PChar(txt))); делаю через Код:
procedure TForm1.MessageReceiver(var msg: TMessage); ![]() |
#3
|
||||
|
||||
![]() Идентификатор второй формы можно и не искать, это же один проект, можно заменить некоторые типы, чтоб компилятор не ругался...
Похоже верно. Вобщем, вот пример: Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#4
|
||||
|
||||
![]() Цитата:
Это не один проект, а совершенно другая программа. |
#5
|
||||
|
||||
![]() const MY_MESSAGE = WM_USER + 4242;
- Что это за константа и для чего. ![]() Вопрос о передаче сообщения другой программе остается в силе. ![]() |
#6
|
||||
|
||||
![]() ![]() Но если нет, то идентификатор окна надо искать, как ты и сделал... Код:
const MY_MESSAGE = WM_USER + 4242; меньшие значения брать не стоит, т.к они используются самой Windows (впрочем так можно обрабатывать нестандартные сообщения, напр: WM_HELP посылается окну, когда нажимается клавиша F1). Главное указать в другой программе ту же константу. Велик и могуч наш Object Pascal ! ICQ: 357-591-887 Последний раз редактировалось Rokuell, 30.12.2007 в 22:30. |