在Delphi中,方法是对对象执行操作的过程或函数。类方法是对类引用而不是对象引用进行操作的方法。
如果您阅读这些行之间的内容,您会发现即使尚未创建类(对象)的实例,类方法也是可以访问的。
每次动态创建Delphi组件时,都会使用一个类方法:构造函数。
Create构造函数是一个类方法,与Delphi编程中遇到的几乎所有其他方法(对象方法)相反。类方法是类的一种方法,恰当地说,对象方法是可以由类的实例调用的方法。最好通过一个示例来说明这一点,为了清晰起见,类和对象以红色突出显示:
myCheckbox := TCheckbox.Create(nil) ;在这里,对Create的调用前面有类名和句点(“TCheckbox”)。它是类的方法,通常称为构造函数。这是创建类实例的机制。结果是TCheckbox类的一个实例。这些实例称为对象。将前一行代码与以下代码进行对比:
myCheckbox.Repaint;这里,调用TCheckbox对象(从TWinControl继承)的重新绘制方法。调用Repaint之前是对象变量和句点(“myCheckbox”)。
可以在没有类实例的情况下调用类方法(例如,“TCheckbox.Create”)。类方法也可以直接从对象调用(例如,“myCheckbox.ClassName”)。但是,对象方法只能由类的实例调用(例如,“myCheckbox.Repaint”)。
在幕后,Create构造函数为对象分配内存(并执行TCheckbox或其祖先指定的任何附加初始化)。
想想AboutBox(一个定制的“关于此申请”表单)。下面的代码使用如下内容:
procedure TfrMain.mnuInfoClick(Sender: TObject) ;beginAboutBox:=TAboutBox.Create(nil) ;tryAboutBox.ShowModal;finallyAboutBox.Release;end;end;This, of course, is a very nice way to do the job, but just to make the code easier to read (and to manage), it would be much more efficient to change it to: procedure TfrMain.mnuInfoClick(Sender: TObject) ;beginTAboutBox.ShowYourself;end;The above line calls the "ShowYourself" class method of the TAboutBox class. The "ShowYourself" must be marked with the keyword "class": class procedure TAboutBox.ShowYourself;beginAboutBox:= TAboutBox.Create(nil) ;tryAboutBox.ShowModal;finallyAboutBox.Release;end;end;...止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 资源文...
在Delphi应用程序中使用菜单或弹出菜单时,在大多数情况下,都是在设计时创建菜单项的。每个菜单项都由一个TMenuItem Delphi类表示。当用户选择(单击)一个项目时,OnClick事件将被触发,以供您(作为开发人员)获取该事件并...
希望掌握Delphi编程语言的初学者应该已经熟悉Microsoft Windows的基础知识。学习Delphi是最容易的,如果你从一个有指导的、基于教程的参考框架来学习它。 基本概念 从一堂历史课开始,介绍(Turbo)Pascal到Delphi 2005的演变,例...
简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...
Delphi的编程语言是强类型语言的一个例子。这意味着所有变量必须是某种类型。类型本质上是一种数据的名称。当我们声明一个变量时,我们必须指定它的类型,它决定了变量可以保存的值集以及可以对其执行的操作。 Delphi...
...的结构。还演示了创建虚拟和嵌套数据集字段的方法。 理解ClientDataSet索引ClientDataSet不会从加载的数据中获取其索引。如果需要,必须显式定义索引。本文将向您展示如何在设计时或运行时执行此操作。 导航和编辑ClientDataSet...
...活动,最终降低计算机的速度。 02 2006年 何时在delphi应用程序中创建表单 假设您要设计一个包含主窗体和两个附加(模态)窗体的程序。通常,根据您的Delphi版本,Delphi将把表单插入到项目单元(DPR文件)中,并包...
从代码中调用函数“DoStackOverflow”一次,您将得到Delphi引发的EStackOverflow错误,并显示消息“stack overflow”。 function DoStackOverflow : integer; begin result := 1 + DoStackOverflow; end; 这个“堆栈”是什么?为什么使用上面的代码会...
...归技术被定义为在代码的中间调用它自己的例程。 为了理解项目中的代码,我们必须熟悉SysUtils单元中定义的下三个方法:FindFirst、FindNext和FindClose。 findfirst FindFirst是使用Windows API调用启动详细文件搜索过程的初始化调用。...
几年前(早在Delphi 2005中)添加的Delphi语言的一个称为“类助手”的功能旨在通过向类(记录)引入新方法,向现有类(或记录)添加新功能。 下面你将看到更多关于类助手的想法,并了解何时使用和何时不使用类助手。 ...