OpenTools APIを介してDelphiプロジェクトにターゲットプラットフォームを追加する方法
-
21-12-2019 - |
質問
Delphi(XE2からXE5まで)、プログラムでプロジェクトにターゲットプラットフォームを追加する方法は?
「プログラム的に」とは、.dprojファイルの変換とは対照的に、OpenTools APIを介して意味します。これはIDEウィザード/エキスパートの中で行われるべきです。
私はToolsApiユニットを見て、アクティブなプラットフォームを取得することができますが、サポートされているプラットフォームのリストを取得できますが、新しいターゲットプラットフォームを追加するには明らかなものはありません。
解決
これが可能であるようです。あなたが見る必要があるユニットはPlatformAPI
です。必要なものが必要なインターフェースは次のとおりです。
{ Provides information on platform-specific information held by a project }
IOTAProjectPlatforms160 = interface(IInterface)
['{E1C62726-BD51-4D4E-A2F2-9A8A59F272AE}']
{ Add an available platform to the project }
procedure AddPlatform(const PlatformName: string);
{ Return the currently active platform key }
function CurrentPlatform: string;
{ Return enabled state of the requested platform }
function GetEnabled(const PlatformName: string): Boolean;
{ Return an array of strings representing the enabled platforms for a project }
function GetEnabledPlatforms: TArray<string>;
{ Return the profile name associated with the specified platform }
function GetProfile(const PlatformName: string): string;
{ Does the project support platform specified by PlatformName? }
function GetSupported(const PlatformName: string): Boolean;
{ Return an array of strings representing the valid platforms for a project }
function GetSupportedPlatforms: TArray<string>;
{ Set a platform as disabled for this project (cannot be made active) }
procedure SetEnabled(const PlatformName: string; Value: Boolean);
{ Set the profile name for the specified platform. Pass an empty string to
clear the profile }
procedure SetProfile(const PlatformName, ProfileName: string);
{ Indicate the specified platform is supported or not }
procedure SetSupported(const PlatformName: string; Value: Boolean);
{ Return whether or not the profile associated with PlatformName is the default profile
for that platform }
function UsingDefaultProfile(const PlatformName: string): Boolean;
property EnabledPlatforms: TArray<string> read GetEnabledPlatforms;
property Enabled[const PlatformName: string]: Boolean read GetEnabled write SetEnabled;
property Profile[const PlatformName: string]: string read GetProfile write SetProfile;
property Supported[const PlatformName: string]: Boolean read GetSupported write SetSupported;
property SupportedPlatforms: TArray<string> read GetSupportedPlatforms;
end;
.
AddPlatform
メソッドはあなたの男のように見えます。
メソッドを呼び出すことを試みなかったことに注意してください。実際、私がしたのは、ツールAPIのソースフォルダのWord Platform を検索しました。
所属していません StackOverflow