gpt4 book ai didi

delphi - Delphi:适当的时间来继承和还原控件吗?

转载 作者:行者123 更新时间:2023-12-03 19:45:23 25 4
gpt4 key购买 nike

开始对控件进行子分类的正确位置/时间是什么?

恢复原始窗口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也可以子类化的控件子类化后,我会收到非常讨厌的错误。

我认为这是因为我不应该在创建过程中启动子类,而在销毁过程中恢复它。那么在Delphi中控件的子类化和取消子类化的正确记录时间是多少?

最佳答案

从您的问题尚不清楚,但我认为您尝试在表单的OnDestroy事件处理程序中还原旧的窗口过程时会收到错误。

在为控件处理WM_DESTROY时,ThemeManager还原其子类。因此,您可能必须做同样的事情:在新的窗口过程中监视WM_DESTROY并首先还原您的子类,然后调用旧的窗口过程(并让ThemeManager做同样的事情)。

我还没有测试过,但是我认为它应该可以工作。

关于delphi - Delphi:适当的时间来继承和还原控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com