Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
ВнизПричтите PLZ! Найти похожие ветки
← →
MystiX (2002-06-06 12:02) [0]Уважаемые мастера, прошу вас помоч!
У меня такая ситуация: есть dll в памяти и программа с невидимой формой,
мне надо из dll послать сообщение программе, а программа должна его обработать и
показать форму с popup menu или скрыть её если она была показана.
Вопрос: Как мне послать сообщение и принять его?
---------------------------------
Заранее спасибо!!!
← →
Виктор Щербаков (2002-06-06 12:10) [1]Послать сообщение можно вызовом SendMessage или PostMessage.
Для того, чтобы его принять, нужно написать обработчик сообщения для формы например:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
const
WM_NEWMESSAGE = WM_USER + 400;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure MyMessageHandler(var Message: TMessage); message WM_NEWMESSAGE;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.MyMessageHandler(var Message: TMessage);
begin
Visible := not Visible; // обрабатываем
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(Handle, WM_NEWMESSAGE, 0, 0); // шлем сообщение
// тебе нужно будет поставить этот вызов
// в dll
end;
end.
← →
Игорь Шевченко (2002-06-06 12:11) [2]const WM_MYMESSAGE = WM_USER + 666;
Послать: SendMessage (..., WM_MYMESSAGE, ....)
Принять: написать обработчик сообщения
type
TMyForm = class(TForm)
private
procedure WMMyMessage (var Message : TMessage); message WM_MYMESSAGE;
.....
end;
procedure TMyForm.WMMyMessage (var Message : TMessage);
begin
MyPopupMenu.Popup (...)
end;
← →
MystiX (2002-06-06 19:34) [3]А как узнать handle моей прогрммы?
← →
ghost_by (2002-06-07 03:41) [4]FindWindow
Полезно также будет почитать http://delphi.mastak.ru/articles/winapi/index.html
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c