在Delphi 7中“重命名控制”?

时间:2008-10-16 00:35:16

标签: delphi refactoring

关注this问题,我正在开发一个大型的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())。

我错过了什么吗?

5 个答案:

答案 0 :(得分:4)

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

您可以尝试ModelMaker用于Delphi 7.它具有可能适合您的重构支持。

答案 1 :(得分:0)

最近的Delphi版本中的Rename Symbol重构将适用于项目中的各个单元。既然你说德尔福7我觉得这对你没有帮助,过去我刚刚使用TextPad,一个伟大的编辑器(像许多其他人一样)会对文件进行强大的搜索/替换(有或没有)确认)。

HTH

编辑:Craig是对的 - GExperts会这样做,Castalia也是如此。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

为什么不使用Sync Edit?它是IDE的一部分(至少在2006年+):

  

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

您必须首先重命名组件,但大部分内容都会让您感到痛苦。我更喜欢在组件添加到表单时重命名组件的GExperts向导,但正如您所指出的,它仅在组件添加到表单时才起作用,并且不会进入代码中组件的各个用法。首先重命名组件的原因是当您选择整个代码块进行重命名时,它不会在dfm文件中进行适当的更改...只是您本地选择的代码块。

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