System.Messaging.pas例子
調度管理信息。
TMessageManager是負責應用程序消息處理的類。它定義了一個作為應用程序范圍內通知中心的對象。
您可以創建TMessageManager的許多實例,但是這個類也可以作為一個單例來工作。你可以調用TMessageManager。使用DefaultManager來訪問TMessageManager的實例,而不是實例化自己的實例並跟蹤它們。
一旦您有了TMessageManager的實例,您就可以調用TMessageManager。訂閱訂閱特定類型的消息的消息處理方法。消息處理方法可以是對象的方法或匿名方法。在向消息類型訂閱方法之后,每次都有一個對TMessageManager的調用。使用目標類型的消息,將調用訂閱的方法。
要從消息類型中取消訂閱以前訂閱的方法,請調用TMessageManager.Unsubscribe。
要將消息廣播給消息管理器中訂閱消息類型的所有方法,請創建TMessage的實例或子類,並調用TMessageManager.SendMessage。
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
System.Messaging, FMX.Edit;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
var
MessageManager: TMessageManager;
Message: TMessage;
begin
MessageManager := TMessageManager.DefaultManager;
Message := TMessage<UnicodeString>.Create(Edit1.Text);
MessageManager.SendMessage(Sender, Message, True);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
SubscriptionId: Integer;
MessageManager: TMessageManager;
begin
MessageManager := TMessageManager.DefaultManager;
SubscriptionId := MessageManager.SubscribeToMessage(TMessage<UnicodeString>, procedure(const Sender: TObject; const M: TMessage)
begin
ShowMessage((M as TMessage<UnicodeString>).Value);
end);
end;
end.
