请问这种声明的格式什么意思 TAbc=Procedure(AParam:String) Of Object;

解决方案 »

  1.   

    Procedure(AParam:String) Of Object 这是一个类方法,TAbc 方法指针:也即方法类型 如同String integer;
    这一般在写控件时用到
    如:
    type
      AControl = class(TButton)
        private
          FProc: TAbc;
          FParam: String;
        protected
          procedure Click; override;
        published
          property MyProc: TAbc read FProc write FProc;
        end;
    implementationprocedure AControl.Click;
    begin
      inherited;
      if Assigned(FProc) then
        FProc(FParam);
    end;这里如果 Procedure(AParam:String)而不是Procedure(AParam:String) Of Object 则不能通过编译 
    而有了TAbc这个方法类型 我们就可以这样写了
     property MyProc: TAbc read FProc write FProc;
    建议看一下VCL源码。
      

  2.   

    知不知道函数指针的问题。
    C++中有函数指针,Delphi里面也有函数指针。
    函数指针的申明要体现函数返回参数以及形式参数的类别!
    Delphi把函数指针发展到过程指针!伟大!
    类似与C++中指向void 类型的函数指针。
    好好学习基础知识!
      

  3.   

    声明类型
    TAbc

    Procedure(AParam:String) Of Object; 
    格式
    以后
    var aa:TAbc;
    aa('aString');会执行这个过程。
      

  4.   

    http://community.csdn.net/Expert/topic/4136/4136116.xml?temp=.9039575