开始子类化控件的正确地点/时间是什么?
恢复原始窗口 proc 的适当时间是什么时候?
现在我在表单创建期间子类化:
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 子类的控件进行子类化,我就会遇到非常讨厌的错误。
我认为这是因为我不应该在Create期间启动子类并在Destroy期间恢复它。那么在 Delphi 中对控件进行子类化和取消子类化的正确记录时间是多少?