补充一点:
其他的控件比如 TEdit 等都是 TWinControl 的子孙,构造的顺序都差不多,
关键的一点是:
对 TWinControl.Handle 属性的第一次访问会触发对窗口句柄的真正创建。
即:Handle->GetHandle->HandleNeeded
关于这一点,可以察看 Delphi Help->HandleAllocated 方法的注解。
上文只是剖析了 TForm 的构造过程,其它类似控件可能有所差别,其它控件并不
一定是在构造 TControlCanvas 时才第一次访问 TWinControl.Handle 的,也许
是在其他地方,不过没有必要都写出来。
Good luck!