アプリケーション コード ベース (つまり、複数のアプリケーション) で広く使用されているコンポーネントがあります。一般的に使用されるイベント ハンドラー プロパティの 1 つを変更したいと考えています。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 のすべてのインスタンスを見つけ、TOoldEventHandlerProc の新しい定義に基づいて、古いパラメータ リストを新しいパラメータ リストに交換する必要があります。たとえば、MyComp1 という名前のコンポーネントのインスタンスを持つ MyForm1 という名前のフォームがある場合、イベント ハンドラーに対して次の 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);
そのようなツールが見つからない場合は、簡単で汚いものを自分で書きますが、時間を節約できるかどうかを尋ねてみようと思いました。そのようなリファクタリングツールを知っている人はいますか?