首页 > 其他分享 >VCL窗体和控件是如何实例化成对象运行的?

VCL窗体和控件是如何实例化成对象运行的?

时间:2022-10-17 20:37:40浏览次数:65  
标签:控件 Parent 对象 VCL 窗体 delete

VCL类库的窗体及每个控件都是一个类(比如TForm1、TButton),可以用类来创建一个对象,这个对象就可以运行了。
C++Builder设计期新建的窗体及放置在窗体上的控件,IDE会自动创建窗体对象以及控件的对象,它们是在设计期运行的。
C++Builder编译的EXE,运行的时候会把窗体控件资源(就是.dfm文件里面描述的,编译时作为资源嵌入EXE)反系列化、实例化成对象运行,.dfm文件里面描述的就是设计期的窗体以及放置的控件。
程序代码也可以用new来动态创建控件的对象,和动态创建普通类的对象略有区别,因为动态创建的控件对象可以指定Owner,还可以设置它的Parent,VCL的机制保证它的Owner或者Parent析构的时候自动销毁它,所以它可以不用写代码手动delete,当然要手动delete也可以,但要注意delete顺序避免二次delete(一般先delete子控件后Parent控件)。

标签:控件,Parent,对象,VCL,窗体,delete
From: https://www.cnblogs.com/ustone/p/16800516.html

相关文章