我最近在调试一个复杂的错误。它是由访问不存在的Form.Handle
(垃圾指针)引起的。对我来说,这个错误以一种相当出乎意料的方式暴露出来——访问表单会Handle
导致调整大小和重绘。
我希望Form.Handle
通过垃圾指针访问只会返回一些垃圾 Thandle。期望Handle
在表单创建时创建一次并保持不变,直到表单被销毁。
问题
为什么会这样,那TForm.Handle
不是在创建表单时初始化并通过以下方式访问的字段
property Handle: Integer read FHandle;
, 但是是吸气剂
property Handle: Integer read GetHandle;
CreateWnd
在首次访问时创建句柄甚至窗口( )?