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.