[原创] Delphi Create(Application) 和 Create(nil) 的区别

Delphi Create(Application) 和 Create(nil) 的区别:

例如:

Form1:=TForm1.Create(Application);

Form1:=TForm1.Create(nil);

Create(Application)  :程序创建时会将对象添加到属主对象的组件(TComponent)列表中,当属主对象销毁时首先查看并销毁属主对象的从属对象,即当Application对象释放时会自动释放从属对象。

    这里又要衍生一个概念及应用程序对象即Application对象,是 TApplication类的实例,Delphi应用程序都是封装在Application对象中的,Application对象对应用程序框架进行统一管理。

    Application对象在初始化时会创建一个创库大小为0的隐含窗口,这个是程序的主窗口,其他所有都是这个主窗口的子窗口。

Create(nil) :如果属主对象参数为nil,那么组件需要手工销毁,否则将会造成内存泄露。

来源于:https://www.cnblogs.com/guorongtao/p/12032958.html

原文地址:https://www.cnblogs.com/guorongtao/p/12032958.html

时间: 2024-10-11 16:15:42

[原创] Delphi Create(Application) 和 Create(nil) 的区别的相关文章

Delphi Create(nil), Create(self), Create(Application)的区别

最近的项目中经常在程序中动态创建控件,势必用到Create. 但是随之而来的问题就是动态创建的控件是否可以正确的释放内存? 以及 Create(nil), Create(self), Create(Application)的区别又是什么呢? Create(nil);//需要自己释放 Create(Self);//当Self释放时自动触发释放 Create(Application);//当Application释放时自动释放 Create(nil);//这种方式创建的对象要自己手工进行FREE才会

Delphi中的Free和Nil和freeandnil函数

Delphi中的Free和Nil 在Delphi中释放对象资源时一般用Obj.Free(Obj为一个实例名),不过程Delphi中还有一个FreeAndNil(对象名)函数,那么用哪个好呢?Free和Nil的本质又都是什么呢? 在Delphi中一个对象名只是一个指向该对象的指针,可以有多个指针指向同一个对象地址.Nil是将指针置空,而Free则将指针指向的对象销毁掉.如下所示: Obj.Free; //将Obj所指向的对象销毁. Obj:= nil; //将Obj指针置空.如果将上面的一句放在后

Oracle create tablespace 、create user and so on

1.创建临时表空间 CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL 2.创建用户表空间 CREATE TABLESPACE test_dataLOGGINGDATAFILE 'C:\ORACLE\PRODUCT\

MySQL中create table as 与like的区别分析

这篇文章主要介绍了MySQL中create table as 与like的区别,结合实例分析了二者在使用中的具体区别与主要用途,需要的朋友可以参考下,具体如下: 对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? 代码如下: create table t2 as select * from t1 where 1=2; as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引. 代码如下: cr

Object.create()和new object()和{}的区别

Object.create()介绍Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法,例如:toString(), hasOwnProperty()等方法 Object.create()方法接受两个参数:Object.create(obj,propertiesObject) ; obj:一个对象,应该是新创建的对象的原型. propertiesObject:可选.该参数对象是一组属性与值,该对象的属性名称将

application.properties 文件和 application.yml 文件有什么区别呢?

application.properties  文件和 application.yml 文件有什么区别呢? yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的. 官方给的很多demo,都是用yml文件配置的. 注意点: 1,原有的key,例如spring.jpa.properties.hibernate.dialect,按“.”分割,都变成树状的配置 2,key后面的冒号,后面一定要跟一个空格 3,把原有的application.properties删掉.然后一定

[原创]Delphi XE10 dxLayoutControl 控件应用指南

DevExpress VCL套件是一套非常强大的界面控件,可惜关于Delphi开发方面的说明太少,有些控件使用起来一头雾水,不知从何下手.本节详细介绍在Delphi Xe10 Seattle中如何利用dxLayoutControl 控件来做界面布局. 1.  首先从工具箱面板中将dxLayoutControl放在Form上,设置2个关键属性如下: 属性 属性值 说明 Align alClient 一般都要设置为alClient,因为需要它控制整个Form布局 LayoutLookAndFeel

[原创]Delphi编程之Win10桌面图标设置

具体代码如下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls,Registry,ShlObj; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; GroupBox

Retrofit2的GsonConverterFactory.create()和RxJava2CallAdapterFactory.create()的实现过程以及执行过程

一概述 上一节分析了retrofit2从创建到执行的完整流程,本节分析一下两个非常重要的功能.数据转换器的实现以及网络请求适配器的实现. 二.GsonConvertFactory.create()数据转换器的实现过程以及执行过程 我们先看下GsonConvertFactory.crete()的源代码,此类在retrofit-converters插件中 public final class GsonConverterFactory extends Converter.Factory { //创建G