كيفية إضافة منصة مستهدفة إلى مشروع دلفي عبر OpenTools API

StackOverflow https://stackoverflow.com//questions/21023537

سؤال

في دلفي (من XE2 إلى XE5)، كيف يمكن للمرء إضافة منصة مستهدفة إلى المشروع برمجيًا؟

أعني بكلمة "برمجيًا" من خلال OpenTools API، بدلاً من تحويل ملف .dproj.يجب أن يتم ذلك داخل معالج/خبير 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 للأدوات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top