理解delphi类方法

在Delphi中,方法是对对象执行操作的过程或函数。类方法是对类引用而不是对象引用进行操作的方法。...

在Delphi中,方法是对对象执行操作的过程或函数。类方法是对类引用而不是对象引用进行操作的方法。

Young man using his laptop to try to solve problem with code

如果您阅读这些行之间的内容,您会发现即使尚未创建类(对象)的实例,类方法也是可以访问的。

类方法与对象方法

每次动态创建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;

Things to Keep in Mind

  • 类方法的定义必须在启动定义的过程或函数关键字之前包含保留字类。
  • AboutBox表单不是自动创建的(项目选项)。
  • 将AboutBox unit置于主窗体的uses子句中。
  • 不要忘记在AboutBox单元的接口(public)部分声明过程。

  • 发表于 2021-09-28 02:35
  • 阅读 ( 207 )
  • 分类:编程

你可能感兴趣的文章

如何将媒体文件嵌入delphi可执行文件(rc/.res)(embed media files into a delphi executable (rc/.res))

...止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 资源文...

  • 发布于 2021-09-06 15:08
  • 阅读 ( 189 )

将项目添加到tpopup delphi菜单

在Delphi应用程序中使用菜单或弹出菜单时,在大多数情况下,都是在设计时创建菜单项的。每个菜单项都由一个TMenuItem Delphi类表示。当用户选择(单击)一个项目时,OnClick事件将被触发,以供您(作为开发人员)获取该事件并...

  • 发布于 2021-09-06 15:10
  • 阅读 ( 162 )

了解delphi编程的基础知识

希望掌握Delphi编程语言的初学者应该已经熟悉Microsoft Windows的基础知识。学习Delphi是最容易的,如果你从一个有指导的、基于教程的参考框架来学习它。 基本概念 从一堂历史课开始,介绍(Turbo)Pascal到Delphi 2005的演变,例...

  • 发布于 2021-09-06 15:13
  • 阅读 ( 180 )

理解delphi项目和单元源文件

简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 170 )

delphi的顺序和枚举数据类型

Delphi的编程语言是强类型语言的一个例子。这意味着所有变量必须是某种类型。类型本质上是一种数据的名称。当我们声明一个变量时,我们必须指定它的类型,它决定了变量可以保存的值集以及可以对其执行的操作。 Delphi...

  • 发布于 2021-09-10 23:38
  • 阅读 ( 194 )

在delphi应用程序中使用tclientdataset的指南

...的结构。还演示了创建虚拟和嵌套数据集字段的方法。 理解ClientDataSet索引ClientDataSet不会从加载的数据中获取其索引。如果需要,必须显式定义索引。本文将向您展示如何在设计时或运行时执行此操作。 导航和编辑ClientDataSet...

  • 发布于 2021-09-15 03:38
  • 阅读 ( 149 )

优化delphi程序的内存使用

...活动,最终降低计算机的速度。 02 2006年 何时在delphi应用程序中创建表单 假设您要设计一个包含主窗体和两个附加(模态)窗体的程序。通常,根据您的Delphi版本,Delphi将把表单插入到项目单元(DPR文件)中,并包...

  • 发布于 2021-09-15 03:43
  • 阅读 ( 195 )

理解delphi中的内存分配

从代码中调用函数“DoStackOverflow”一次,您将得到Delphi引发的EStackOverflow错误,并显示消息“stack overflow”。 ​function DoStackOverflow : integer; begin result := 1 + DoStackOverflow; end; 这个“堆栈”是什么?为什么使用上面的代码会...

  • 发布于 2021-09-15 03:47
  • 阅读 ( 188 )

如何用delphi搜索文件和文件夹(search for files and folders with delphi)

...归技术被定义为在代码的中间调用它自己的例程。 为了理解项目中的代码,我们必须熟悉SysUtils单元中定义的下三个方法:FindFirst、FindNext和FindClose。 findfirst FindFirst是使用Windows API调用启动详细文件搜索过程的初始化调用。...

  • 发布于 2021-09-15 03:52
  • 阅读 ( 208 )

了解delphi类(和记录)助手

几年前(早在Delphi 2005中)添加的Delphi语言的一个称为“类助手”的功能旨在通过向类(记录)引入新方法,向现有类(或记录)添加新功能。 下面你将看到更多关于类助手的想法,并了解何时使用和何时不使用类助手。 ...

  • 发布于 2021-09-15 03:55
  • 阅读 ( 169 )
阿逝不营业
阿逝不营业

0 篇文章

相关推荐