`
neo
  • 浏览: 265534 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

procedure & procedure of object的区别

阅读更多
delphi中经常见到以下两种定义

Type

         TMouseProc = procedure (X,Y:integer);

         TMouseEvent = procedure (X,Y:integer) of Object;

两者样子差不多但实际意义却不一样,

TMouseProc只是单一的函数指针类型;

TMouseEvent是对象的函数指针,也就是对象/类的函数/方法

区别在于类方法存在一个隐藏参数self,也就是说两者形参不一样,所以不能相互转换

这也就是为什么delphi中可以这样赋值 button1.onClick:=button2.onClick;

却不能这样赋值 button1.onclick=buttonclick; (buttonclick为本地函数,button2.onclick为类方法)

的原因!
分享到:
评论

相关推荐

    CREATE PROCEDURE DB2ADMIN.doc

    Hibernate是一个流行的Java ORM(Object-Relational Mapping)框架,可以简化数据库操作。调用存储过程的步骤如下: 1. 获取Session:通过SessionFactory创建Session对象。 2. 准备存储过程调用:创建...

    Delphi procedure and function

    Delphi是一种快速应用程序开发工具,它使用Object Pascal语言作为其主要的编程语言。过程和函数在Delphi中承担着封装代码逻辑、实现代码复用、以及功能模块化的重要角色。通过在Delphi中定义和使用过程与函数,...

    Object_pascal中文介绍

    Buffer: array[1..1024] of Byte; begin FileStream := TFileStream.Create('example.txt', fmOpenRead); try FileStream.Read(Buffer, SizeOf(Buffer)); finally FileStream.Free; end; end; ``` ### 9. ...

    访问存储过程(或函数)一般以procedure标签来定义statement。

    ### 访问存储过程(或函数)通过IBATIS中的Procedure标签定义Statement 在IBATIS框架中,访问数据库中的存储过程或者函数是一项常见的需求。本文将深入探讨如何利用IBATIS提供的`procedure`标签来定义这样的操作,...

    object pascal 编程指南

    **Object Pascal编程指南** Object Pascal是一种面向对象的编程语言,它是Delphi和Free Pascal等编译器的基础。这种语言在20世纪80年代由Borland公司为Turbo Pascal引入,目的是为了增加面向对象特性,使其能与C++...

    用DXScene三方控件开发的一个闹钟提醒

    procedure ToolBar1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure btnEditClick(Sender: TObject); procedure btnDelClick(Sender: TObject); procedure ...

    最完整的Object Pascal语言介绍(中文版)

    2. 函数和过程:Object Pascal中的函数和过程使用`function`和`procedure`关键字。函数可以返回值,而过程不返回值。例如: ``` function Add(a, b: Integer): Integer; begin Result := a + b; end; procedure ...

    屏幕解锁小程序

    procedure Timer1Timer Sender: TObject ; procedure FormCreate Sender: TObject ; procedure FormKeyDown Sender: TObject; var Key: Word; Shift: TShiftState ; procedure Button1Click Sender: TObject ; ...

    object pascal语法

    ### Object Pascal 语法详解 #### 一、Object Pascal 概述 Object Pascal 是一种基于经典 Pascal 语言的现代编程语言,被广泛应用于 Delphi 开发工具中。它结合了传统 Pascal 的简洁性和现代面向对象编程(OOP)的...

    oracle中的procedure编写和使用详解

    SELECT object_name, object_type, status FROM user_objects WHERE OBJECT_TYPE='PROCEDURE'; ``` - 查看Procedure源代码: ```sql SELECT text FROM user_source WHERE NAME = 'procedure_name'; ``` 5. ...

    Object Pascal 编程指南

    **Object Pascal 编程指南** Object Pascal 是一种面向对象的编程语言,它是 Pascal 语言的扩展,主要用于 Delphi 和 Free Pascal 等开发环境中。它以其强大的类型系统、高效的编译器和对对象编程的深入支持而受到...

    delphi应用程序框架及object pascal语言

    ### Delphi 应用程序框架及Object Pascal语言详解 #### 一、Delphi概述 Delphi 是一种基于Object Pascal的快速应用开发(RAD)环境,它由Borland公司在1995年首次发布,并在随后的发展过程中逐渐成为了Windows平台...

    Object Pascal基本语法

    - **函数与过程**:`function`用于定义返回值的子程序,`procedure`则不返回值。实验中的自定义函数`f(x)`就是一个例子。 5. **面向对象特性**: - **类(Class)**:Object Pascal支持类的定义,可以包含数据...

    SQL Assistant v5.0

    Code refactoring - Extract sub procedure definition from procedural code - 3 clicks method for conversion of a block of code to a stored procedure or function - customizable templates. Code ...

    Object_Pascal语言.pdf

    ### Object_Pascal语言知识点概述 #### 1. 注解 (Annotations) Object_Pascal 支持三种类型的注解:花括号注解、圆括号/星号注解以及 C++ 风格的双斜杠注解。这些注解允许开发者在代码中添加解释性文本,提高代码...

    Delphi+MsSQL教师工资管理原版

    procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Procedure ClearString; Procedure ClearStringEnd; procedure BitBtn1MouseUp(Sender: TObject...

    cxGrid右键菜单

    procedure DoPopup(Sender: TObject); override; procedure CreatePopupMenu; procedure DestroyPopupMenu; procedure LoadViewProperty; procedure LoadViewStyleSheets; procedure LoadViewSetColor(aInit:...

Global site tag (gtag.js) - Google Analytics