コントロールのサブクラス化を開始する正しい場所/時間は何ですか?
元のウィンドウプロシージャを復元する適切なタイミングは何ですか?
現在、フォームの作成中にサブクラス化しています:
procedure TForm1.FormCreate(Sender: TObject);
begin
FOldPanel1WindowProc := Panel1.WindowProc;
Panel1.WindowProc := Panel1WindowProc;
end;
そして私はフォームの破壊中にサブクラスを復元します:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Panel1.WindowProc := FOldPanel1WindowProc;
end;
これは、コントロール自体をサブクラス化するThemeManagerを使用しない限り、正常に機能します。ThemeManagerもサブクラス化するコントロールをサブクラス化しようとするとすぐに、非常に厄介なエラーが発生します。
作成中にサブクラスを開始して、破棄中に復元するべきではないためだと思います。では、Delphiでコントロールをサブクラス化およびサブクラス化解除するための適切に文書化された時間はどれくらいですか?