Инструмент / утилита для рефакторинга свойств обработчика событий Delphi 6?
У меня есть компонент, который широко используется в кодовой базе моего приложения (то есть - несколько приложений). Я хочу изменить одно из часто используемых свойств обработчика событий. Мне нужен инструмент / утилита, которая будет проходить через исходный файл формы 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 формы и нашла все экземпляры 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 ответ
Функция рефакторинга доступна в последней версии Delphi.
Вы можете легко реорганизовать свой код с помощью одного из них и в конечном итоге исправить все DFM, чтобы обеспечить совместимость с Delphi 6.