实例化对象时,一般都必须用Create方法。上面不用的话,会有内存没有分配的错误。
解决方案 »
- 求助如何设置动态得到多层关联的SQL数据并计算平均值
- delphi 应用lex&yacc原理,构造yyparse.y中语义子程序是如何构造的!!
- 屏幕监视程序的问题 ** JPG文件流传输的问题及还原 ** 請各位指教!!!
- 请教:DELPHI中,IF 语句中 OR 和 AND 的优先级?
- 需要你相助!
- 十万火急--高分求教怎样在DELPHI数据库中调用EXCLE表?
- 如何设置DBE中Access数据库的别名。
- 求助:着急需要一个类似于瑞星助手弹出的小黄方框,有源码的话给一分吧,谢谢!
- 如何物理性改变打印机的属性?
- 请问在ESMTP中的AUTH命令 client <--->server 是怎样具体交换的,用户名是怎样验证的请讲一讲具体原理和过程?
- 改TstringField后的问题怎么解决?
- SetLength这个函数怎样用?
需要创建实际对象时使用Create,若只作为对象指针引用,则可以不用创建。但不管何种情况,如果该对象指向的目标内存没有实际可用对象,或被其它对象指针销毁,再调用其方法时则会产生内存指向错误!
使用constructor.
Var RegF,RegF2:TRegistry;
...
DoSomething(RegF); //此时RegF为nil,将引发异常
RegF:=TRegistry.Create;
RegF2 := RegF;
DoSomething(RegF2); //RegF2和RegF引用同一个对象,此调用等同于DoSomething(RegF)
否则就要创建对象。 Var
RegF:TRegistry;
RegG:TRegistry;
...
RegF:=TRegistry.Create; //还没有实例,要创建
RegG:=RegF; //已有一个实例,可以用赋值