【发布时间】:2012-03-01 17:12:24
【问题描述】:
我正在将框架的父级更改为运行时以将框架从一种形式移动到另一种形式。这工作正常,但之后我的组件不再接收鼠标事件。例如,CM_MOUSEENTER 和 CM_MOUSELEAVE 不会被触发。
Frame.Parent := SecondDisplayForm;
Frame.Align := alClient;
SecondDisplayForm.Show;
我不明白这个效果,我真的不知道要提供什么信息,所以如果你有提示,请在这里帮助我。
【问题讨论】:
-
您的其他表单是否将 KeyPreview 设置为 true?
-
KeyPreview不应影响鼠标事件。 -
+1 我也有同样的问题,很烦。就我而言,我在 CM_MOUSEENTER 之后和 CM_MOUSELEAVE 触发之前更改了父级。也许这也很重要..
-
@balazs:是的,这对我来说也是如此。当我更改父级时,鼠标悬停在组件上。
-
警告:请谨慎处理父母更换!您必须考虑所有权。见:How to detach a panel and show it in a separate window?