RTL クロスプラットフォーム メッセージング ソリューションの使用

提供: RAD Studio
移動先: 案内検索

メッセージの使用 への移動
マルチデバイス アプリケーションでの RTL の使用 への移動


RTL にはクロスプラットフォームのメッセージング ソリューションが用意されており、System.Messaging ユニットに実装されています。

メッセージの送受信

RTL のクロスプラットフォーム メッセージング ソリューションはメッセージ マネージャに基づいています。

  • 特定の型のメッセージを受信する必要があるコンポーネントでは、メッセージ マネージャを通じて、対象となるメッセージ型にサブスクライブします。
  • コンポーネントはメッセージ マネージャにメッセージを送信し、メッセージ マネージャがそれらのメッセージを中継して、受信するメッセージの型にサブスクライブしたコンポーネントに送ります。

詳細については、「RTL を使用したメッセージの送受信」を参照してください。

RAD Studio フレームワークでの RTL メッセージのサポート

RTL のクロスプラットフォーム メッセージング ソリューションは、FireMonkey でも VCL でも使用することができます。

FireMonkey での RTL メッセージのサポート

FireMonkey では、プラットフォーム サービス IFMXApplicationService を提供しています。これは、イベント通知へのクロスプラットフォーム アクセスを提供しており、これにより、アプリケーションが対象とする各プラットフォーム固有のイベント システムを使用する必要がなくなります。IFMXApplicationService がイベント通知をオペレーティング システムから受け取ると、イベント データを提供するためのメッセージ オブジェクト(TMessage またはその下位クラスの 1 つ)を生成します。このメッセージ オブジェクトには、発生したイベントに関する読み出し専用の情報が格納されています。メッセージ オブジェクトの型は、発生したイベントの型を示します。

また、FireMonkey コンポーネントでは、RTL メッセージを利用して互いに通信します。

FireMonkey コンポーネントでは、デフォルト メッセージ マネージャにメッセージを送信します。FireMonkey のメッセージ型の一覧については、「FireMonkey メッセージ型の一覧」を参照してください。

VCL での RTL メッセージのサポート

VCL フレームワークでは RTL のクロスプラットフォーム メッセージング ソリューションを使用せず、代わりに、Windows API のメッセージング ソリューションを使用します。つまり、VCL では Windows メッセージを RTL メッセージに自動的には変換せず、そのうえ、VCL コンポーネントどうしは Windows API を使って互いに通信します。

プロジェクトで RTL メッセージを使用できるのは、Windows コンポーネントまたは VCL コンポーネントからのメッセージを取得する必要がない場合だけです。たとえば、RTL メッセージを使用して、マルチスレッド アプリケーションでスレッドを処理したり、相互のメッセージ送受信のみ行うコンポーネントを作成することができます。

Windows コンポーネントまたは VCL コンポーネントからのメッセージにアクセスする必要がある場合は、次のいずれかが必要になります。

関連トピック

関連項目