新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> 开发语言 >> 文章正文

了解delphi过程类型/过程类型学习

   ⒈什么是过程类型    
  把一个变量声明为过程类型,可以把一个过程或函数作为一个整体赋给这个变量或者把这个变量作为参数传递给其它过程或函数。  
   
  声明一个过程类型的语法同声明一个过程或函数的首部语法相似,不同的是在保留字Procedure或fun- ction后不需要有过程或函数的标识符,中国自学编程网首发,例如:  
   
  Type  
                Proc1=Procedure;  
                Proc2=Procedure(VarX,Y:integer);  
                Proc3=Function(X:Double):Double;  
   
  上例中,声明了三个过程类型,第一个是不带任何参数的过程,第二个是带两个参数的过程,第三个是带一个Double类型的参数并返回Double类型值的函数。  
   
  同声明一个过程或函数一样,您在声明一个过程类型时可以指定一种调用约定方式,缺省就是Register方式。    
   
  下面我们举例说明过程类型的用法:  
   
  Type  
                SwapProc=Procedure(Var   X,Y:Integer);  
                MathFunc=Function(X:Double):Double;  
   
  {以上是类型声明部分}  
   
  Var  
                P:SwapProc;  
                F:MathFunc;  
   
  {以上把P说明为SwapProc   类型的变量,把F说明为MathFunc类型的变量}  
   
  Procedure   Swap(var   A,B:integer);  
  Var  
                Temp:Integer;  
  Begin  
                Temp:=A;  
                A:=B;  
                B:=Temp;  
  End;  
   
  Function   Tan(Angle:Double);  
  Begin  
                Tan:=Sin(Angle)/Cos(Angle);  
  End;  
   
  {以上定义了一个过程和一个函数}  
   
   
  P:=Swap;  
  F:=Tan;  
   
  {以上把Swap过程赋给P变量,把Tan函数赋给F变量}  
   
   
  P(I,J);   {相当于调用Swap(I,J)}  
  X:=F(X);   {相当于X:=tan(X)}  
这里举例说明了一个过程或函数可以赋给一个过程类型的变量,事实上过程类型的数据还可以作为参数传递给其它过程或函数。  
   
  注意:不能把过程类型直接作为函数的返回类型,不过您可以让函数的返回类型为指针类型,让指针指向一个过程或函数的地址。  
   
  当把一个过程或函数赋给一个过程类型的变量时要注意赋值相容,只有满足下列条件才是赋值相容的。  调用约定方式必须相同。    
   
  参数个数必须相同,相应的其数据类型必须相同,但参数名不一定必须相同。  
   
  函数的返回类型必须相同。  
   
  Object   Pascal规定,nil同任何过程类型相容。  
   
  过程类型根据其是否运用于对象分为两大类:一类是全局过程指针,另一类是方法指针。    
   
  全局过程指针指向的是全局的过程或函数,例如上例中的SwapProc和MathFunc,这类过程类型在声明没有Of   object   部分。  
   
  方法指针在明时必须加上Of   object,表示它所指向的是一个对象的方法,程序示例如下:  
   
  Type  
                TNotifyEvent=Procedure   (Sender:Tobject)   Of   Object;  
   
  有了方法指针后,要扩展一个对象,不需要重新派生出一个新的,只要把其它对象的方法赋给个这个方法指针就可以了,这样可以避免对象的层次过多,www.k8w.net 。  
   
  方法指针通常用于把对象的事件同一段已有的代码(可能是其它对象的)相联系起来,例如您想定义用户单击按钮时的缺省行为,您不必从   Tbutton对象派生出一个新对象并重载它的响应单击的行为, 您只需要把一段已有的代码同一个方法指针联系起来。  
   
  方法指针的示例如下:  
   
  Type  
                TNotifyEvent=Procedure(Sender:Tobject)   Of   Object;  
  Type  
                TAnObject=Class(TObject)  
                              FOnClick:TNotifyEvent;  
                End;  
                TAnOtherObject=Class(TObject)  
                              Procedure   AMethod(Sender:Tobject);  
                end;  
  Var  
                AnObject:TAnObject;  
您现在的位置:首页--开发语言--DELPHI编程--DELPHI基础--浏览文章
delphi过程类型基础学习

点击:220   发布日期:2007-11-27 20:07:24   进入论坛 
 

                AnOtherObject:TAnotherObject;  
  Begin  
                AnObject:=TAnobject.Create;  
                AnotherObject:=TAnotherObject.Create;  
                AnObject.FOnClick:=AnotherObject.Amethod;  
  end;  
 
 

作者:未知 | 文章来源:未知 | 更新时间:2007-11-29 14:19:29

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    delphi实现利用arp欺骗来实现计费功能
    一个delphi开发托盘程序的例子
    BLOB是如何使用的
    GB/Unicode/GBK之间的转换
    delphi使用技艺大全
    在桌面中嵌入窗体
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·搜集整理的asp.net的验证方
    ·各种FOR循环结构的整理
    ·软件项目开发中应该考虑那
    ·搜集整理的javascript sel
    ·软件开发中项目经理有那些
    ·学习如何在Lambda表达式进
    ·C++基础知识:结构体数据的
    ·C#实现短信发送程序的例子
    ·sun最近修补了一部分java的
    ·rss定制的另外一种实现方式
    ·delphi实现利用arp欺骗来实
    ·基础学习:基于WF的流程框
    ·网络编程中怎样得知一次数
    ·如何逆序输出单链表?
    ·软件开发过程中的性能设计
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000