System.Messaging.pas例子


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.

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM