通常、イベントハンドラーは、次のように宣言されたプロパティで宣言されます。
property OnMyEvent: TMyEvent read FOnMyEvent write FOnMyEvent;
したがって、それを起動するには、コードが実行されるため、コンポーネントのソースコードでへの参照または場合によってFOnMyEvent
はを検索する必要があります。通常、次のようなものが見つかります。FOnMyEvent
OnMyEvent
procedure TMyComponent.DoMyEvent;
begin
if Assigned(FOnMyEvent) then
FOnMyEvent(Self);
end;
DoMyEvent
最後に、と呼ばれる場所を探す必要があります。
実例として、のOnSetText
イベントを使用できますTField
。これは次のように宣言されます:
property OnSetText: TFieldSetTextEvent read FOnSetText write FOnSetText;
それがへの唯一の参照OnSetText
です。FOnSetText
したがって、これにつながるものを探します。
procedure TField.SetEditText(const Value: string);
begin
if Assigned(FOnSetText) then FOnSetText(Self, Value) else SetText(Value);
end;
現在、SetEditText
はプライベートメソッドであるため、宣言されているユニットの外を見る必要はありません。そして、それが使用される唯一の場所は、:のプロパティセッターとしてですTField.Text
。
property Text: string read GetEditText write SetEditText;
次に、続行してそのプロパティが割り当てられている場所を探すことができますが、それが発生する場所はたくさんあります。したがって、これらすべてをデバッグする場合は、デバッグDCUを有効にして、内部にブレークポイントを設定する必要がありますTField.SetEditText
。ブレークポイントが頻繁に発生することがわかった場合は、コンテンツにブレークポイント条件を設定することをValue
お勧めします。