`
compty
  • 浏览: 5376 次
  • 性别: 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 SuperObject 解决节点乱序问题

    SuperObject Delphi 的 JSON 操作类改造 - 关于属性顺序的问题。(原创资源) Delphi 的 ISuperObject 属性顺序为随机。但是很多时候,是需要按加入顺序进行读取。我也看了网上很多人有类似需求。也有人问过原作者...

    一个Delphi程序人机录入窗口实例源代码.rar

    一个Delphi程序录入窗口【源码】,是一个供用户向数据库中输入数据的用户界面,很多数据库系统都需要类似的界面,本例比较基础,面向Delphi初学者。核心代码:  procedure TForm1.Edit4Exit(Sender: TObject);  ...

    sgcWebSockets 4.1.10 Full Source For delphi7-xe10.4.2.rar

    1. 新增安装环境 xe 10.4.2 syndney 2. 取消支援intraWeb 元件 安装方式 1.解压缩档案 2.将解压缩目录下source 路径新增到library path 3.打开package下所属版本... sgcWebSocketsD10_4.groupproj : Delphi 10.4

    Delphi Trim删除字符串首尾空格的实例.rar

     procedure TForm1.SpeedButton1Click(Sender: TObject);  var  Str : String;  begin  Str := ' 你好,朋友! ';  Edit1.Text := Str;  Edit1.SetFocus;  Edit1.SelectAll;  Edit2.Text := Trim(Edit1....

    Delphi动态改变VCL对象的颜色和字体.rar

    Delphi动态改变VCL对象的颜色和字体,实现的功能有:储存对象、改变颜色、改变字体。在应用程序运行时动态改变VCL对象,而且改变的VCL对象可使用VCL Framework的Persistent功能保存等。通过改变字体颜色和字体样式来...

    运用delphi编写记事本

    运用delphi设计记事本 代码: unit jsb; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls; type TForm1 = class(TForm) MainMenu1: ...

    Delphi 实现类的转形.rar

    Delphi 实现类的转形,将类定义为可用和不可用:  procedure TForm1.SetEnable(Enable: Boolean);  var  i:Integer;  begin  for i:=0 to Self.ComponentCount-1 do  begin  if Self.Components[i] is TEdit ...

    用Delphi编写 Sybase ESP (Extended store procedure)

    用Delphi编写 Sybase ESP (Extended store procedure)使用create procedure 安装此过程,需要启动xp_server

    Delphi7用superobject解析Json数据,superobject.pas下载

    Delphi读写操作JSON字符串时,需引用一个superobject.pas文件。 var jo,jt:ISuperObject; begin jo:=SO(); jt:=SO(); jo.S['姓名']:='小王'; jo.I['年龄']:=25; jo.S['性别']:='男'; jt.O['人员']:=jo; ...

    Delphi 注册和删除热键举例.rar

     procedure TForm1.FormCreate(Sender: TObject);  begin  hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;  registerhotkey(handle,hotkeyid,MOD_CONTROL or mod_Alt,$41);  end;  以下是删除...

    DELPHI7编译出错提示内存:RLINK32.dll出错

    delphi7编译慢 或linking阶段会出错 经常会出现内存泄漏或不足 或RLink32.DLL访问出错 直接把bolndmm.dll与rlink32.dll拷贝至delphi7下的bin目录中可以调试了 按网友的说法 新版的内存管理器或连接器 bolndmm.dll...

    Delphi 判断指针记录是否被改变.rar

    Delphi 如何判断数据库指针记录是否被改变,测试需要连接SQLSERVER数据库,例子面向Delphi初学者,学习数据库指针的相关操作。主要的代码如下:  procedure TFrmState.FormShow(Sender: TObject);  begin  ...

    Delphi 隐藏桌面图标 并显示图标.rar

    Delphi 隐藏桌面图标 并显示图标,运行这个小程序后,单击窗口上的对应按钮,即可演示对应的功能,其实实现这个功能挺简单的,可以使用Delphi中内置的函数功能来实现,比如:  procedure TForm1.Button1Click...

    Delphi7版本 - X-Superobject

    delphi7版本的X-SuperObject, 超简单,超好用,使用json于数据交换,大大方便程序代码的编写。

    Delphi6 Canvas画特效图片:颜色渐变

    说明:Delphi6 Canvas画特效图片:颜色渐变 核心技术:DelphiTColor(R,G,B:Integer):TColor; Google搜索:inttohex(,stringtocolor(,DelphiTColor(,ColortoRGB(,垂直翻转,Bitmap

    Delphi 如何判断ADO的状态.rar

    Delphi 如何判断ADO的状态,通过新增和修改内容,可查看ADO的状态。相关代码如下:  procedure TFrmOrderBy.BtnCloseClick(Sender: TObject);  begin  Close;  end;  procedure TFrmOrderBy.BtnOrderClick...

    来电显示的Delphi开发控件

    开发来电显示的Delphi控件包: 使用方法: (1) 下载控件包Component.zip (2) 先编译 CPortLib6.dpk ,已安装了CPortLib 控件组的可省略这一步骤 (3) 然后编译 TelePort.dpk ,并安装 (4) 安装完成后,在 ...

    Delphi 判断cxGrid表格是否在filter状态.rar

    Delphi 判断cxGrid表格是否在filter状态:  procedure TFrmOrderBy.BtnOrderClick(Sender: TObject);  begin  ADODataSet1.Filtered := false;  ADODataSet1.Filter := 'dePartMent=''软件部''';  ADODataSet1....

    源码演示Delphi 如何放大和缩小图像【图片】.rar

    源码演示Delphi 如何放大和缩小图像【图片】,我们这个例子可以学习了解如何使用Delphi编程代码,放大或缩小一张图片,这里把放大和缩小图片的基数写在按钮事件中,用户每次单击按钮,就会按照一定的缩放倍数放大或...

    delphi 怎样在数据表中调整记录指针的位置.rar

    delphi 怎样在数据表中调整记录指针的位置的源码实例,源代码运行于Delphi7环境,有兴趣的可下载测试。有兴趣可参考以下核心代码:  procedure TFrmOrderBy.FormShow(Sender: TObject);  begin  ADODataSet1....

Global site tag (gtag.js) - Google Analytics