Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
14-65246
petr_v_a
2002-05-18 15:48
2002.06.20
Динамика цен на железо


3-64920
ROCKET
2002-05-26 00:46
2002.06.20
перегнать


1-65034
Solver
2002-06-06 06:38
2002.06.20
Как вернуть фокус окну приложения?


1-65127
Dr. Web
2002-06-07 10:59
2002.06.20
Как сделать Scrolled toolbar?


6-65194
Joker_555
2002-04-10 04:32
2002.06.20
Работа с ICQ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский