加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 将单元添加到项目中所有单元的uses子句中?

发布时间:2020-12-15 09:48:16 所属栏目:大数据 来源:网络整理
导读:我发现某些类型的代码清理和重构由于难以在大型项目的uses-clause中添加单元而变得非常困难. 我想在单个项目中的所有delphi .pas单元的interface-uses-clause中添加一个单元,这意味着在500多个地方手动执行该操作.每次我重构一个巨大的单元并将其从一个单元
我发现某些类型的代码清理和重构由于难以在大型项目的uses-clause中添加单元而变得非常困难.

我想在单个项目中的所有delphi .pas单元的interface-uses-clause中添加一个单元,这意味着在500多个地方手动执行该操作.每次我重构一个巨大的单元并将其从一个单元拆分为两个单元时,我可以使用“记事本”之类的东西进行搜索和替换,将“MyOldUnit”更改为“MyOldUnit,MyNewUnit”,但有时,这样做是不安全的.它还错过了“MyOldUnit”是uses子句中的最后一个(“使用MyOldUnit;”)的情况.

无论如何,搜索和替换文件是危险的业务.如果不存在这样的工具,我正在考虑使用Castalia delphi解析器编写一个.我检查了GExperts,Castalia,ModelMakerCodeExplorer,但没有一种方法可以将单元批量插入到项目的所有使用子句中.我希望有一个工具可以做到这一点.

其次,在很多情况下,我将一个功能从一个不属于另一个单元的单元移动,但这意味着我需要将该单元添加到项目单元的30%,而不是其他70%已经已经添加.这意味着需要解析器方法,而不是正则表达式方法.

解决方法

因为我们都编写代码,我们肯定会在其他项目中使用.如果将接口部件从一个单元移动到另一个单元,则会破坏您的项目.与旧单位和新单位相同.

但是你可以在不破坏项目的情况下进行重构.只需将部件(单元,类,方法,过程)标记为已弃用.
您的代码正在运行,但编译器会向您发出警告.

这是一个将过程从一个单元移动到另一个单元的示例:

unit Foo;

interface

procedure FooProc; deprecated; // new location in unit FooNew

implementation

uses
  FooNew;

procedure FooProc;
begin
  FooNew.FooProc;
end;

end.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读