Delphi是否爲表單創建(或更一般地說,表單生命週期事件)提供某種事件或鉤子?Delphi是否提供表單創建通知的事件處理程序?
因此,如果代碼中的某個地方創建並顯示了一個表單(模態或非模態,動態地或在通常的應用程序starup階段),Delphi調用一個事件處理程序,它允許記錄/分析/修改表單它顯示?
我知道有些選項涉及引入基本窗體類或自定義窗體創建過程,但對於已有多種窗體的現有應用程序來說,'非常好'具有非侵入式選項以添加類似於面向方面編程(AOP)中的交叉問題。例如,如果我有一些使用統計信息跟蹤的代碼來注入附加的事件處理程序,那麼我可以簡單地爲每個表單添加此功能,開發人員不必更改應用程序代碼,只添加類似於此代碼的代碼。
...
Application.OnNewForm := MyNewFormCreated;
...
procedure TMyApp.MyNewFormCreated(Sender: TCustomForm);
begin
// iterate over components and do other stuff with the new form
...
end;
沒有什麼內置的。最好的解決方案是有一個共同的基類。 –
@David:是的,這可能是最好的解決方案。請做出答案。 –
@Andreas這不是一個答案,因爲@mjn說,通用基類不是想要的。 –