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