FireMonkey プラットフォーム サービス
プラットフォーム サービスは FireMonkey インターフェイスであり、そこに定義されている機能は、特定の実行時プラットフォームに実装されている場合も実装されていない場合もあります。
FireMonkey に多数のプラットフォーム サービスが実装されているほか、独自のプラットフォーム サービスを実装することもできます。
プラットフォーム サービスの使用
プラットフォーム サービスを使用するには、次の手順に従う必要があります。
- お使いのユニットに、目的のサービスが宣言されているユニット(たとえば、FMX.Platform など)への参照を追加します。
- 対象となるプラットフォーム サービスをパラメータとして TPlatformServices.SupportsPlatformService を呼び出して、指定されたプラットフォーム サービスが実行時にサポートされるかどうかを判断します。
SupportsPlatformService
の戻り値がTrue
の場合は、TPlatformServices.GetPlatformService を使用して実際のプラットフォーム サービスにアクセスし、返されたサービスを適切にキャストします。あるいは、SupportsPlatformService
を使用して、サービスを取得することもできます。
たとえば、クリップボード サービス(IFMXClipboardService)にアクセスするには、次のようにします。
Delphi の場合:
var
ClipboardService: IFMXClipboardService;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, ClipboardService) then
begin
// …
end;
end;
C++ の場合:
_di_IFMXClipboardService ClipboardService;
if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXClipboardService), &ClipboardService)) {
// …
}
組み込みプラットフォーム サービス
プラットフォーム サービスの登録と登録解除
TPlatformServices.AddPlatformService と TPlatformServices.RemovePlatformService を使用して、プラットフォーム サービスの登録と登録解除をそれぞれ行うことができます。
たとえば、組み込みプラットフォーム サービスの 1 つを登録解除し、必要に合わせて調整される新しいプラットフォーム サービス実装に置き換えることができます。