Инструмент / утилита для рефакторинга свойств обработчика событий Delphi 6? - PullRequest
2 голосов
/ 13 сентября 2011

У меня есть компонент, который широко используется в кодовой базе моего приложения (то есть - несколько приложений). Я хочу изменить одно из часто используемых свойств обработчика событий. Мне нужен инструмент / утилита, которая просматривала бы исходный файл формы 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 Ответ

2 голосов
/ 16 декабря 2011

Функция рефакторинга доступна в последней версии Delphi.

Вы можете легко реорганизовать свой код, используя один из них, и в конечном итоге исправить каждый DFM для обеспечения совместимости с Delphi 6.

...