关注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())。
我错过了什么吗?
答案 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键。