Delphi学习笔记1

面对对象编程学习:

override:重载,是用于对父类中所定义的虚方法(virtual关键字)进行的.它重写父类的函数.当不使用继承行为而需要引用新的行为时,可在函数后加reintroduce关键字.
overload:过载,它用于当具有不同参数或返回值,但却需要同一个函数名的时候.

类的方法里可以包括类方法,在声明时在procedure或函数前加上class关键字,这种方法在没有类的对象时可直接使用,如同在.net里的类的静态方法一样.但在类方法体内,不可访问类的成员,因为此时还没有类的对象存在.

进行对象赋值时,使用赋值操作符(:=)是将一个对象的引用赋值给一个对象变量,使用assign或assignto方法可以将对象属性进行复制,得到两个状态一样的对象。用b:=a意味着b是a的引用,两者是同一对象。而b.assign(a)则b是一个单独的对象,其状态与a相同。(这是经常造成内存泄漏的地方)

application对象:
由application对象创建的应用程序实际上是没有大小,不可见的窗体,它可以在windows任务栏上。但它不是程序员自己定义的Main Form,因为它显示的标题来自于TApplication.Title而不是TForm1.Caption值。在程序中所有的Form都是它的子窗体。

它是一个全局变量,可在直接中直接使用。

显示创建模态窗体对象时,用frm:=tform.create(nil)而不是create(self)来创建,因为通过对象的生命周期可以清楚,如果用create(self)来创建的话,它的生命周期是由父类来管理的,就不能显示的调用frm.free方法来释放内存。对非模态窗体,可以用create(self)来创建,以此由属主对象来管理其生命周期。
原文地址:https://www.cnblogs.com/erqie/p/941551.html