我有一个在我的应用程序代码库中广泛使用的组件(即 - 多个应用程序)。我想更改一个常用的事件处理程序属性。我需要一个工具/实用工具,它将通过Delphi 6表单源文件(DFM + PAS),并对表单上组件实例的当前定义的事件处理程序进行搜索和替换。
例如。假设我在当前定义为的组件上有一个事件处理程序属性:
property eventHandler1: TOldEventHandlerProc read FOnEvent write FOnEvent;
其中TOldEventHandlerProc定义为:
TOldEventHandlerProc = procedure(oneParm: string) of object;
我想将TOldEventHandlerProc更改为:
TOldEventHandlerProc = procedure(oneParm: string; twoParm: integer) of object;
我希望该实用程序检查Form的DFM / PAS文件对的内容,并查找已定义的所有FOnEvent实例,并根据TOldEventHandlerProc的新定义替换新参数列表的旧参数列表。例如,给定一个名为MyForm1的表单,其中包含名为MyComp1的组件实例,您将为事件处理程序生成以下IDE生成的声明:
TMyForm1 = class(TForm)
// IDE created event handler stubs.
procedure MyComp1OnEvent(oneParm: string);
将事件处理程序的主体声明为:
procedure TMyForm1.MYCom1OnEvent(oneParm: string);
该实用程序需要找到OnEvent()处理程序的每个实例,并替换事件处理程序的头声明和事件处理程序的主体声明,并交换参数列表,结果为:
TMyForm1 = class(TForm)
// IDE created event handler stubs.
procedure MyComp1OnEvent(oneParm: string; twoParm: integer);
将事件处理程序的主体声明为:
procedure TMyForm1.MYCom1OnEvent(oneParm: string; twoParm: integer);
如果我找不到这样的工具,我会自己写一个快速而肮脏的工具,但我想我会问我是否可以节省一些时间。有谁知道这样的重构工具?
答案 0 :(得分:2)
最近的Delphi版本中提供了重构功能。
您可以使用其中一个轻松地重构代码,并最终修复每个DFM以确保Delphi 6的兼容性。