Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Поймать сообщение из другой программы


Автор: SlaUr 29.3.2004, 10:46
Мне нужно следующее (может я не праивильно буду выражаться)

В первой программе поставить ловушку на определенное сообщение
Во второй программе посылать сообщение первой программе.
Это нужно для того , чтобы после определенных действий во второй программе обновлялись данные в первой (т.к. обе программы взаимосвязанны.)

Мне нужен именно простой пример.


Автор: Alex 29.3.2004, 15:50
Значит так в той программе которая должна принемать сообщение пишешь
Код
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

const // Сообщения
 wmu_MyMessage   = wm_User + 625;

type
 TfrmTest1 = class(TForm)
 private
   { Private declarations }
   procedure MyMessage(var Msg: tMessage); message wmu_MyMessage;
 public
   { Public declarations }
 end;

var
 frmTest1: TfrmTest1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TfrmTest1.MyMessage(var Msg: tMessage);
begin
 ShowMessage('');
end;

end.

Здесь объявлено свое сообщени. 625 можно заменить на любое число главное чтобы полученное сообщение было уникальным
Для посылки сообщения во второй программе напиши следуюшее
Код
procedure TForm1.Button1Click(Sender: TObject);
begin
 PostMessage(FindWindow('TfrmTest1', nil), WM_USER+625, 0, 0);
end;

Здесь происходит собственно отправка сообщения окну первой программы

Если чтото непонятно пиши.
Могу выслать работающий пример.

Автор: SlaUr 30.3.2004, 09:19
alex-co СПАСИБО! (код работает)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)