2

跟进这个问题,我正在研究一个写得不是很好的大型 Delphi 7 代码库。

我正在看这样的代码,作为一个小例子:

  if FMode=mdCredit then begin
    Panel8.Caption:='Credit';
    SpeedButton3.Enabled:=false;
    SpeedButton4.Enabled:=false;
    SpeedButton5.Enabled:=false;
    SpeedButton5.Enabled:=false;
    SpeedButton6.Visible:=False;
    SpeedButton10.Visible:=False;
  end;

其次是另外 6 个非常相似的块。整件事情都是这种风格。所以我认为如果控件命名合理,这将更容易阅读。

我可以只使用全局搜索和替换,但是当多个表单使用相同的名称时我会遇到问题,而且我必须小心在 SpeedButton1 之前更改(例如)SpeedButton10。

是否有一些插件能够为我执行“智能”重命名?

编辑:
抱歉,我之前应该提到过这一点:我尝试了 GExperts 和 Castalia 的“重命名组件”功能,但它们似乎都是在最初将组件添加到表单时使用的。

他们不会在代码中进行搜索+替换,也不会重命名现有事件 (SpeedButtonXClick() -> cmdCreditClick())。

我错过了什么吗?

4

5 回答 5

4

不完全是一个插件,但您可以使用最新版本的 Delphi 之一和其中的重构功能。也许您可以使用免费的Turbo Edition。. .

您可以尝试使用ModelMaker for Delphi 7。它具有可能对您有用的重构支持。

于 2008-10-16T01:13:55.540 回答
0

最近 Delphi 版本中的重命名符号重构将跨项目中的单元工作。既然您说 Delphi 7,我想这对您没有帮助,而且在过去我刚刚使用过TextPad,这是一个很棒的编辑器(与许多其他编辑器一样)可以跨文件进行强大的搜索/替换(有或没有确认)。

高温高压

编辑:克雷格的权利 - GExperts 会这样做,Castalia也会这样做。

于 2008-10-16T00:43:35.677 回答
0

我认为GExperts有这样的搜索和替换功能。

于 2008-10-16T00:44:26.817 回答
0

不知道它是否适用于您的情况,但您可以尝试在具有重构功能的更高版本的 Delphi 中加载您的项目,并使用它来更改组件名称,同时处理所有依赖项。然后你只需要做一个差异,看看有什么改变。

于 2008-10-16T01:13:17.710 回答
0

为什么不使用同步编辑?它是 IDE 的一部分(至少在 2006 年以上):

同步编辑功能可让您同时编辑选定代码中的相同标识符。例如,在包含三个 label1 匹配项的过程中,您可以只编辑第一个匹配项,所有其他匹配项将自动更改。(抄自 BDS2006 帮助)

您将不得不首先重命名您的组件,但它消除了大部分的痛苦。我更喜欢在将组件添加到表单时重命名组件的 GExperts 向导,但正如您所指出的,它仅在将组件添加到表单时才有效,并且不涉及代码中组件的单独使用。首先重命名组件的原因是,当您选择整个代码块进行重命名时,它不会在 dfm 文件中进行适当的更改......只是您本地选择的代码块。

要使用该功能,请选择您的整个实现块,然后按下装订线中的按钮,该按钮有两支铅笔由一条线“链接”...然后按 Tab 直到您获得要编辑的第一个...当您更改它的名称,它将在您的源文件的其余部分全局更改。完成后按 ESC。

于 2008-10-20T14:13:16.820 回答