Verwenden der plattformübergreifenden RTL-Botschaftslösung

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Verwenden von Botschaften
Nach oben zu Verwenden der RTL in geräteübergreifenden Anwendungen


Die RTL stellt eine plattformübergreifende Botschaftslösung bereit, die in der Unit System.Messaging implementiert ist.

Senden und Empfangen von Botschaften

Die plattformübergreifende RTL-Botschaftslösung basiert auf einem Botschafts-Manager:

  • Komponenten, die Botschaften eines bestimmten Typs empfangen sollen, abonnieren den Ziel-Botschaftstyp im Botschafts-Manager.
  • Komponenten senden Botschaften an den Botschafts-Manager, der diese Botschaften an Komponenten überträgt, die den Typ der empfangen Botschaft abonniert haben.

For more information, see Senden und Empfangen von Botschaften mit der RTL.

RAD Studio-Frameworks unterstützen RTL-Botschaften

Sie können die plattformübergreifende RTL-Botschaftslösung mit FireMonkey und mit der VCL verwenden.

FireMonkey-Unterstützung für RTL-Botschaften

FireMonkey stellt einen Plattformdienst, IFMXApplicationService, bereit. Dieser Dienst stellt plattformübergreifenden Zugriff auf Ereignisbenachrichtigungen bereit, damit Sie nicht gezwungen werden, unterschiedliche, plattformspezifische Ereignissysteme auf jeder Plattform für Ihre Anwendung zu verwenden. Wenn IFMXApplicationService eine Ereignisbenachrichtigung von einem Betriebssystem empfängt, erzeugt es zum Bereitstellen der Ereignisdaten ein Botschaftsobjekt (TMessage oder eine davon abgeleitete Klasse). Das Botschaftsobjekt enthält schreibgeschützte Informationen über das aufgetretene Ereignis. Der Typ des Botschaftsobjekts entspricht dem Ereignistyp.

FireMonkey-Komponenten verwenden auch RTL-Botschaften, um miteinander zu kommunizieren.

FireMonkey-Komponenten senden Botschaften an den Standard-Botschafts-Manager. Eine Liste der Botschaftstypen von FireMonkey finden Sie unter Liste der Botschaftstypen von FireMonkey.

VCL-Unterstützung für RTL-Botschaften

Das VCL-Framework verwendet die plattformübergreifende RTL-Botschaftslösung nicht, sondern die Windows-API-Botschaftslösung. Das bedeutet, dass die VCL Windows-Botschaften nicht in RTL-Botschaften übersetzt und VCL-Komponenten ebenfalls über die Windows-API miteinander kommunizieren.

Sie können RTL-Botschaften in Ihrem Projekt nur verwenden, wenn Sie keine Botschaften von Windows oder VCL-Komponenten abfangen müssen. Beispielsweise können Sie RTL-Botschaften verwenden, um Threads in einer Multithread-Anwendung zu behandeln oder um Komponenten zu schreiben, die nur gegenseitig Botschaften senden und empfangen.

Wenn Sie einen Zugriff auf Botschaften von Windows oder VCL-Komponenten benötigen, müssen Sie eines der folgenden Verfahren anwenden:

Themen

Siehe auch