自定义消息

来源:互联网 发布:铁岭网络预约出租汽车 编辑:程序博客网 时间:2024/05/16 14:22
unit Unit5;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls,Unit4;type  TForm1 = class(TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var  DemoMsgCom:TDemoMsgComponent;begin  DemoMsgcom := TDemoMsgcomponent.create(nil);  SendMessage(demoMsgCom.handle,WM_CLose,0,0);  Freeandnil(demomsgcom);end;end.



unit Unit4;interfaceuses  Windows,Classes,Messages;type  TDemoMsgComponent = class(TComponent)  private    Fhandle :HWND;    procedure MainWndProc(var message: TMessage);  public    constructor create(AOwner: TComponent); override;    destructor destroy; override;  published    property Handle: HWND read Fhandle;  end;implementation{ TDemoMsgComponent }constructor TDemoMsgComponent.create(AOwner: TComponent);begin  inherited;  Fhandle := Classes.AllocateHWnd(MainWndProc);end;destructor TDemoMsgComponent.destroy;begin  if Fhandle<>0 then  Classes.DeallocateHWnd(Fhandle);  inherited;end;procedure TDemoMsgComponent.MainWndProc(var message: TMessage);begin  if message.Msg = wm_close then    messagebox(0,'收到消息WM_CLOSE','收到消息', MB_OK)  else    DefaultHandler(message);end;end.


0 0