zoukankan      html  css  js  c++  java
  • [Delphi]过程Procedure动态调用

    过程也可以像通用变量一样声明、调用

    procedure HelloWorld;
    
    begin  
    
    ShowMessage('HI');
    
    end;
    
    procedure HelloWorld2(a:String);
    
    begin  
    
    ShowMessage('HI');
    
    end;
    
     
    
    procedure TFormSplash.FormCreate(Sender: TObject);
    
    var 
    
        myproc:Procedure; 
    
       myproc2:Procedure(a:String);
    
    begin   
    
        myProc:=HelloWorld;
    
       if Assigned(myProc) then  myProc;
    
       myproc2:= HelloWorld2;
    
       if Assigned(myproc2) then  myproc2('');

    也可以这样定义

     var 

        myproc:Procedure=HelloWorld;

       myproc2:Procedure(a:String)=HelloWorld2;

    参数类型不同或顺序不同会提示

      E2009 Incompatible types: ‘Parameter lists differ’

    直接赋值 对象中的过程或函数将出错

     E2009 Incompatible types: ‘regular procedure and method pointer’

    需要在Type里声明类型

    type
      TMethod = procedure of object;
      TFunc = function: integer of object;
      TNotifyEvent = procedure(Sender: TObject) of object;
     
  • 相关阅读:
    最小生成树
    线段树
    编程快捷键
    线段树的动态开点
    常用库
    线性求逆元
    文件读入
    树上倍增(LCA)
    set容器
    快读与快写
  • 原文地址:https://www.cnblogs.com/leamanXZ/p/5177649.html
Copyright © 2011-2022 走看看