我有一个在我的应用程序代码库中广泛使用的组件(即多个应用程序)。我想更改常用的事件处理程序属性之一。我需要一个工具/实用程序,它可以通过 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;
我希望该实用程序检查表单的 DFM/PAS 文件对的内容,并根据 TOldEventHandlerProc 的新定义,找到已定义的所有 FOnEvent 实例,并将旧参数列表换成新参数列表。例如,给定一个名为 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);
如果我找不到这样的工具,我会自己写一个又快又脏的工具,但我想我会问我是否可以节省一些时间。有谁知道这样的重构工具?