停止IDE自动添加使用单位

我正在将一个拉撒路项目转移到德尔福西雅图。

拉撒路项目依赖于40多个单位(包括控制),并有几个应用程序。

在所有项目的使用条款中,他们使用了以下内容:

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, DBCtrls, {$I OurLibrary.inc};    

他们将这40多个单位包含在$I OurLibrary.inc

由于其中一些单位是控制,我在德尔福注册。

但是,如果我保存该项目或编译/编译它,Delphi会再次在使用部分中添加这些单元。

  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, DBCtrls, uOurEdit, {$I OurLibrary.inc}; 

在这种情况下,单位uOurEdit再次被添加,即使它在$I OurLibrary.inc

如果我手动删除它并再次编译该项目它运行。 一旦我切换回设计器模式,并尝试运行它,同样的事情不断发生 - 它再次添加uOurEdit。

一旦你移除一个单位拉撒路不会再添加它。 Delphi做到了。

有没有办法告诉德尔福停止阅读单位或自动停止添加单位?


IDE认为某些部分是由IDE控制的。 这包括大部分DPR文件,表单或数据模块声明的默认published部分以及单元interface部分的uses条款。 最好不要在这方面与IDE对抗。 你最终会输。

我不会推荐在uses子句中使用include指令。 正如您已经注意到的那样,IDE不会读取包含的文件来确定单元列表。 表单设计器会自动添加它认为需要的单元,并且无法阻止它。

由于IDE会在使用时自动添加控件的单元,因此无论如何您都应该能够安全地将它们从包含文件中移除。

您也可以考虑将您的单元列表移至implementation部分中的uses子句。 IDE不会触及那个。


我同意使用包含文件不是一个好主意,但实际上有一种方法可以阻止IDE自动添加这些单元。

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, DBCtrl,
  {$IFDEF DUMMY}
  // add those units here which you don't want to automatically add
  // the IDE won't add them but they won't be part of the uses assuming
  // DUMMY is undefined
  uOurEdit,
  {$ENDIF}
  // Here comes the rest of the units
  {$I OurLibrary.inc};

这可能不适合你,因为你必须手动添加uOurEdit ,所以最好遵循Rob的建议。 但是,此技术可用于自动停止IDE添加单元。

链接地址: http://www.djcxy.com/p/67679.html

上一篇: Stop the IDE from adding uses units automatically

下一篇: Blank lines instead of a task console output in MSBuild