![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Идентификатор второй формы можно и не искать, это же один проект, можно заменить некоторые типы, чтоб компилятор не ругался...
Похоже верно. Вобщем, вот пример: |
|
#4
|
||||
|
||||
|
Цитата:
Это не один проект, а совершенно другая программа. |
|
#5
|
||||
|
||||
|
const MY_MESSAGE = WM_USER + 4242;
- Что это за константа и для чего. Вопрос о передаче сообщения другой программе остается в силе. ![]() |
|
#6
|
||||
|
||||
думал, что посылаешь сообщение другой форме из того же проекта...Но если нет, то идентификатор окна надо искать, как ты и сделал... Код:
const MY_MESSAGE = WM_USER + 4242; меньшие значения брать не стоит, т.к они используются самой Windows (впрочем так можно обрабатывать нестандартные сообщения, напр: WM_HELP посылается окну, когда нажимается клавиша F1). Главное указать в другой программе ту же константу. Последний раз редактировалось Rokuell, 30.12.2007 в 22:30. |