停止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添加单元。
上一篇: Stop the IDE from adding uses units automatically
下一篇: Blank lines instead of a task console output in MSBuild