`
compty
  • 浏览: 5492 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

delphi中一个概念性问题:procedure of object 什么意思

阅读更多
这样的声名主要用于事件处理。
例:
type
TNotifyEvent = procedure(Sender: TObject) of object;

7:首先:
procedure 也是类型
可以理解为过程类型,定义过程的参数结构,而具体的实现可以动态赋值
像onclick那样
例子:
声明
onclick= procedure(Sender: TObject,a :integer) of object;
以后你就可以把TNotifyEvent作为过程用了,而不用考虑它实现什么功能,你想onclik里
用户写了什么,都是一样的
if assign(onclick) then
onclick;
这样只要TNotifyEvent可以执行,程序就去执行它,控件就是这样实现事件的


8:procedure 指针占4个字节,保存在过程的地址
procedure of object占8个字节,保存过程的地址和类的地址

procedure of object 是类过程(类函数),用法如下:
1、与普通函数相同点:可以像一般的函数和过程一样在类的实例里作为对象方法调用;
2、与普通函数不同点:可以不通过对象,而是通过类来直接调用。
也就是说,一般函数和过程必须通过类的实例(对象)来调用,而类过程(类函数)则
可以不必通过该类的实例来调用。通过类来调用函数或者过程,可以定义和实现一些不
能或者不适合作为某一特定对象行为的方法。
可以参考一下Java编程思想里关于Static方法的论述。很透彻。
分享到:
评论

相关推荐

    Delphi procedure and function

    标题“Delphi procedure and function”指向了编程领域中的一个具体概念,即Delphi语言中两种重要的代码组织单元:过程(procedure)和函数(function)。Delphi是一种快速应用程序开发工具,它使用Object Pascal...

    delphi 三层中传递自定义Record的例子

    首先,我们需要理解Record在Delphi中的概念。Record是一种复合数据类型,它可以包含各种基本数据类型的字段,类似于其他语言中的结构体。Record的定义允许我们在一个变量中封装多个相关的数据,非常适合用来表示复杂...

    delphi面试题.pdf

    - **类继承** 是 Delphi 中面向对象编程的一个核心概念,允许创建新的类来扩展现有类的功能。 - **多态** 指的是同名的方法或属性在不同的类中有不同的实现方式。在 Delphi 中,可以通过虚方法和接口实现多态。 -...

    Delphi中DLL的回调函数使用

    回调函数是DLL中一个特殊的概念,它允许DLL将控制权交还给调用者,让调用者执行特定的代码。这种机制在处理异步操作、事件处理或自定义数据处理时非常有用。本文将深入探讨Delphi中DLL的回调函数的使用及其相关知识...

    delphi 时间计算实例

    在Delphi编程中,时间计算是一个常见的需求,特别是在处理日期和时间相关的任务时。本文将通过实例讲解如何在Delphi中进行时间计算,并结合鼠标控制的相关知识,帮助你更好地理解和应用。 首先,我们来看时间计算的...

    delphi 程序运行 动态创建控件可以拖放

    var DragObject: TDragObject); begin DragObject := TDragObject.Create(Sender); end; ``` 2. **定义拖放目标**:在需要接收拖放数据的控件上,设置其`AcceptDragDrop`属性为`True`,并实现`OnDragOver`和`...

    DELPHI的原子世界.pdf

    ### 一、TObject:DELPHI的原子基石 #### 定义与起源 TObject,作为Object Pascal语言体系结构的基本核心,是所有对象类的始祖。即使在开发过程中未明确将其作为祖先类,DELPHI编译器也会默认将所有自定义对象类视...

    delphi事件赋值操作

    事件赋值操作是Delphi中一个重要的概念,它允许我们动态地将一个方法绑定到特定的事件上。下面将详细探讨Delphi事件赋值操作的相关知识点。 1. **事件声明**: 在Delphi中,事件通常作为类的成员声明,其语法如下...

    Delphi多线程的安全问题分析及解决

    多线程程序设计中一个重要的概念就是“同步”,它指的是多个线程之间如何协调工作,确保数据的一致性和完整性。在Delphi中,多线程同步问题主要体现在以下几个方面: 1. **共享资源的访问冲突**:当多个线程尝试...

    DELPHI用参数传递函数的实例..rar

    TMyCallback = procedure(AValue: Integer) of object; procedure ApplyOperation(AValue: Integer; ACallback: TMyCallback); begin ACallback(AValue); end; procedure IncrementValue(AValue: Integer); ...

    Delphi帮助文档-Object Pascal语言参考(中英文对照版)

    **Delphi帮助文档-Object Pascal语言参考** Object Pascal是一种基于Pascal编程语言的现代方言,主要被用于Delphi集成开发环境中。Delphi以其高效的编译器和VCL(Visual Component Library)框架闻名,使得开发者能...

    Delphi入门基础教程:ObjectPascal中文参考手册(可打印版)

    **Delphi入门基础教程——Object Pascal中文参考手册** Delphi是一款强大的Windows应用程序开发工具,它以其高效的编译器和直观的可视化设计界面而受到开发者们的喜爱。Object Pascal是Delphi的核心编程语言,它是...

    详细描述了Delphi多线程编程,超级简单易懂

    ### Delphi多线程编程详解 #### 一、Delphi多线程编程概述 多线程编程是现代软件开发中的关键技术之一,它能够显著提升应用程序的性能和用户体验。Delphi作为一种广泛使用的编程语言,提供了丰富的多线程支持,...

    Delphi API_读写串口

    ### Delphi API 读写串口知识点解析 #### 一、引言 在现代软件开发领域,特别是工业自动化控制及设备通信中,串行通信(简称串口通信)扮演着重要角色。Delphi作为一种功能强大的编程语言,在进行串口编程方面具有...

    delphi动画效果实现

    在Delphi编程环境中,实现动画效果可以为用户界面增添生动性和吸引力。Delphi是一个强大的Windows应用程序开发工具,它提供了丰富的图形用户界面(GUI)组件和功能,使得开发者能够轻松地创建具有动态效果的应用程序...

    在Delphi中动态创建和拖动控件的演示..rar

    通过理解这些基本概念,开发者可以构建更灵活、更具交互性的用户界面。在实际项目中,可能还需要考虑控件的布局管理、响应速度优化以及与数据绑定等复杂情况。但这个基础教程已经足够帮助初学者入门。

    Delphi中用消息处理线程

    在Delphi编程中,使用消息处理线程是一种常见的技术,用于实现异步操作、提高程序响应性等。本文将深入探讨如何在Delphi中利用消息处理线程,并通过具体的代码示例来解释其实现机制。 #### 一、消息与线程的基本...

    delphi 中鼠标移动事件

    #### 二、Delphi中鼠标移动事件的基础概念 在Delphi中,处理鼠标移动事件主要通过`MouseMove`事件来完成。当用户的鼠标在某个控件上移动时,该事件就会被触发。开发者可以通过编写响应`MouseMove`事件的代码来获取...

    delphi弹开与关闭光驱

    - **兼容性问题**:不同的操作系统版本可能会对MCI命令有不同的响应。例如,在某些较新的Windows版本中,由于安全性和稳定性方面的考虑,可能不支持或限制了某些MCI命令。 - **错误处理**:当调用`mciSendString`时...

    繁體Delphi Function

    在编程领域,Delphi是一种基于Object Pascal语言的集成开发环境(IDE),由Embarcadero Technologies公司维护。它以其高效能、低级别的内存管理和强大的Windows应用程序开发能力而著名。"繁體Delphi Function"指的是...

Global site tag (gtag.js) - Google Analytics