Talk:FMX.Messages.TMessageManager

From RAD Studio API Documentation
Jump to: navigation, search

Jason Coley has kindly provided an example on how to use this. The original post is here. The source from that example is:

type
  TMyMessageClass = class(TMessage)
    MyProp1 : Integer;
    MyProp2 : string;
  end;

procedure MyForm.FormCreate(Sender: TObject); 
begin
  TMessageManager.DefaultManager.SubscribeToMessage(TMyMessageClass, Self.ProcessMessage); 
end;

procedure MyForm.ProcessMessage(Sender : TObject; M : TMessage); 
begin
  if M is TMyMessageClass then
  begin
    //Do something
  end;
end;

From the thread I do something like...

procedure TMyThread.Execute;
var
  FMyMessage : TMyMessageClass;
begin
  //stuff
  Synchronize(
    procedure
    begin
      FMyMessageClass := TMyMessageClass.Create;
      FMyMessageClass.MyProp1 := 1;
      FMyMessageClass.MyProp2 := 'Hello';
      TMessageManager.DefaultManager.SendMessage(nil, FMyMessageClass);
    end);
end;