Verwenden der plattformübergreifenden RTL-Botschaftslösung
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.
Inhaltsverzeichnis
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:
- Verwenden Sie die Windows-API-Botschaftslösung.
- Portieren Sie Ihr Projekt nach FireMonkey. FireMonkey übersetzt Systembotschaften bereits in RTL-Botschaften, und FireMonkey-Komponenten verwenden zudem RTL-Botschaften.
- Schreiben Sie eine eigene Übersetzungsschicht, in der Windows-API-Botschaften RTL-Botschaften zugeordnet werden.