用于重构Delphi 6事件处理程序属性的工具/实用程序?

时间:2011-09-13 09:03:19

标签: delphi properties refactoring event-handling tform

我有一个在我的应用程序代码库中广泛使用的组件(即 - 多个应用程序)。我想更改一个常用的事件处理程序属性。我需要一个工具/实用工具,它将通过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);

如果我找不到这样的工具,我会自己写一个快速而肮脏的工具,但我想我会问我是否可以节省一些时间。有谁知道这样的重构工具?

1 个答案:

答案 0 :(得分:2)

最近的Delphi版本中提供了重构功能。

您可以使用其中一个轻松地重构代码,并最终修复每个DFM以确保Delphi 6的兼容性。