【问题标题】:Delphi OpenTools API - Editing the project requires clauseDelphi OpenTools API - 编辑项目需要子句
【发布时间】:2016-03-10 13:41:51
【问题描述】:

我编写了一个 OpenTools 向导,用于为自定义项目类型创建骨架。它确实有效,并且项目和单元已正确创建。但是,如何编辑 .dpk 或 .dpk 文件的 requires 子句?

ModuleServices.CreateModule(MyIOTAProjectCreatorInterface) 的调用只给我 .dproj 文件。

【问题讨论】:

    标签: delphi ide wizard opentools


    【解决方案1】:

    在我的VCL Component Installer(由于 XE,这是 Delphi IDE 的一部分),我这样做:

    procedure TCompInstallWizard.AddReferenceFiles(InstallProject: IOTAProject;
      const FileNames: array of string);
    var
      ReferenceFile: string;
    begin
      WriteDebugMessage('AddReferenceFiles');
      for ReferenceFile in FileNames do
        if not ContainsFile(InstallProject, ReferenceFile) then
          InstallProject.AddFile(ReferenceFile, False);
    end;
    

    借助函数IOTAProject.AddFile(FileName, IsUnitOrForm)。请注意,我这样称呼它:

    if FPersonality = ppCppBuilder then
      AddReferenceFiles(InstallProject,
        ['rtl.bpi', 'designide.bpi', 'vcl.bpi', 'vclactnband.bpi',
         'vclx.bpi', 'xmlrtl.bpi'])
    else
      AddReferenceFiles(InstallProject,
        ['rtl.dcp', 'designide.dcp', 'vcl.dcp', 'vclactnband.dcp',
         'vclx.dcp', 'xmlrtl.dcp']);
    

    请注意,文档说:

    { Call this function to add an arbitrary file to the project.  NOTE: some
      files have special meaning to different projects.  For example: adding
      VCL60.DCP will cause a new entry in a package project's "requires" list
      while it will be a raw file to any other project type.  Set IsUnitOrForm
      to true for files that are considered items that the project would
      process directly or indirectly (ie. .pas, .cpp, .rc, etc..) or can be
      opened in the code editor. For all others, including binary files
      (.res, .bpi, .dcp, etc..) set this to False. }
    procedure AddFile(const AFileName: string; IsUnitOrForm: Boolean);
    

    这意味着如果您添加'bla.dcp',它将自动进入requires 部分,如果您添加'bla.pas' 文件,它将自动进入contains 部分。我花了一段时间才发现。

    【讨论】:

    • 完美,非常有帮助,谢谢 Rudy。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 2020-06-11
    相关资源
    最近更新 更多