• delphi 中的函数指针 回调函数(传递函数指针,以及它需要的函数参数)


    以下代码仅仅是测试代码:delphi XE7 UP1

    [delphi] view plain copy
     
    1. interface  
    2.   
    3. uses  
    4.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,  
    5.   System.Classes, Vcl.Graphics,  
    6.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;  
    7.   
    8. type  
    9.   TForm1 = class(TForm)  
    10.     btn1: TButton;  
    11.     btn2: TButton;  
    12.     edt1: TEdit;  
    13.     procedure btn1Click(Sender: TObject);  
    14.     procedure FormCreate(Sender: TObject);  
    15.     procedure FormShow(Sender: TObject);  
    16.     procedure FormDestroy(Sender: TObject);  
    17.   private  
    18.     { Private declarations }  
    19.   
    20.   public  
    21.     { Public declarations }  
    22.   end;  
    23.   
    24.   TMethod = procedure(v:string);  
    25. var  
    26.   Form1: TForm1;  
    27.   FList: TList;  
    28.   
    29. implementation  
    30.   
    31. {$R *.dfm}  
    32.   
    33. procedure p1(v:string);  
    34. begin  
    35.   ShowMessage('p1'+v);  
    36. end;  
    37.   
    38. procedure p2(v:string);  
    39. begin  
    40.   ShowMessage('p2'+v);  
    41. end;  
    42.   
    43.   
    44.   
    45. procedure callt(my:TMethod;v:string);  
    46. begin  
    47.   my(v);  
    48. end;  
    49.   
    50.   
    51.   
    52. procedure TForm1.btn1Click(Sender: TObject);  
    53. var  
    54.   v_s:string;  
    55. begin  
    56.   v_s:= edt1.Text;  
    57.   callt(FList.Items[StrToInt(v_s)],v_s);  
    58. end;  
    59.   
    60. procedure TForm1.FormCreate(Sender: TObject);  
    61. begin  
    62.    FList := TList.Create;  
    63. end;  
    64.   
    65. procedure TForm1.FormShow(Sender: TObject);  
    66. begin  
    67.   FList.Add(@p1);  
    68.   FList.Add(@p2);  
    69.   edt1.Clear;  
    70. end;  
    71.   
    72. procedure TForm1.FormDestroy(Sender: TObject);  
    73. begin  
    74.   FreeAndNil(FList);  
    75. end;  
    76.   
    77. end.  

    http://blog.csdn.net/rznice/article/details/43190537

  • 相关阅读:
    ActiveMQ介绍及安装
    Spring注解驱动开发
    Redis 安装、配置、集群
    FastDFS的使用
    How are you vs How are you doing
    阅微草堂笔记
    我在实习的英文表达
    INTRO: THE DAWN (亡灵序曲) 中独白
    银魂的武士道
    Linguistic Data Consortium (LDC)
  • 原文地址:https://www.cnblogs.com/findumars/p/8206779.html
Copyright © 2020-2023  润新知