Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.540 Beiträge
 
Delphi 12 Athens
 
#2

AW: Botschaft verschicken unter Firemonkdey

  Alt 15. Feb 2025, 13:18
Das kannst Du mit dem TMessageManager (Unit System.Threading einbinden) machen.

Senden, z.B. so:

TMessageManager.DefaultManager.SendMessage(NIL, TMessage<UnicodeString>.create('DeineNachrichtHier'));

In den units, wo die Nachricht empfangen werden soll, verwendest Du das hier:

TMessageManager.DefaultManager.SubscribeToMessage(TMessage<UnicodeString>, HandleManagerMessage);

Statt HandelManagerMessage, kannst Du auch direkt an dieser Stelle eine anonyme Procedure verwenden.

Hier sieht es dann so aus:

Delphi-Quellcode:
procedure TF_ViewMain.HandleManagerMessage (const sender: TObject; const M: TMessage);
begin
  var s := (M as TMessage<UnicodeString>).Value;
   
  if s = 'DeineNachrichtHierthen begin
     ...
  end;
end;

Das unsubscribe am Ende nicht vergessen.


TMessageManager.DefaultManager.Unsubscribe(TMessage<UnicodeString>, HandleManagerMessage);

Notgedrungen Eigenwerbung, aber evtl. hilfreich, in meinem FireMonkey-Buch ("Cross-Platform Development mit Delphi 10.2 & FireMonkey" bei Amazon, Kapitel 9 "Senden und Empfangen von Botschaften mit dem TMessageManager" erfährst Du über ca. 8 Seiten mehr davon, incl. einiger Beispiele.

Geändert von Harry Stahl (15. Feb 2025 um 13:21 Uhr)
  Mit Zitat antworten Zitat