メッセージの使用
アプリケーション開発では、メッセージはプロセス間通信の手段です。
アプリケーションでは、メッセージの送信元となる可能性のあるものは次のいずれかです。
- システム(アプリケーションにユーザー入力、描画フェーズ、システム全体に及ぶ他のイベントなどを知らせます)
- アプリケーション(アプリケーションのさまざまな部分でメッセージを使用して互いに通信し合います)
メッセージを使用すべき場合
アプリケーションを作成するときは、通常、メッセージではなくイベントを処理します。コンポーネントでは、プログラムで処理できるイベントを公開し、他のコンポーネントとの通信やシステム メッセージの処理に(プログラマには意識させずに)内部でメッセージを使用するだけです。
ただし、次のような場合には、メッセージを使用しなければならない可能性があります。
- イベントで公開されていないシステム メッセージまたはフレームワーク メッセージにアプリケーションで応答する必要がある場合。
- カスタム コンポーネントを作成する場合。コンポーネントは、メッセージを使用して互いに通信します。
- マルチスレッド アプリケーションを作成する場合。さまざまなスレッドがメッセージを使って互いに通信する可能性があります。
メッセージング ソリューションの選択
RAD Studio プロジェクトに従事している場合は、使用できる異なるメッセージング ソリューションが 2 つあります。プロジェクトがアプリケーションの場合は、お使いのアプリケーション フレームワークで使用しているメッセージング ソリューションを選択するのが普通です。
- FireMonkey アプリケーションでは、クロスプラットフォームのメッセージング ソリューションが必要なので、RTL を使用します。
- VCL アプリケーションではメッセージング用の Windows API を利用します。
カスタム コンポーネントを作成する場合は、お使いのコンポーネントで使用しているフレームワーク(FireMonkey か VCL)にかかわらず、クロスプラットフォームの RTL メッセージング システムを使用してかまいません。ただし、VCL コンポーネントに対しては、Windows API のメッセージング ソリューションを使用する方が賢明かもしれません。既存の VCL コンポーネントでは Windows API を使ってメッセージを送受信するだけで、VCL フレームワークでは、FireMonkey とは異なり、Windows API メッセージをクロスプラットフォームのメッセージには変換しないからです。