根据函数名称---函数指针--调用函数

type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject) ;
     procedure CallMeByName(Sender: TObject) ;
   private
     procedure ExecMethod(OnObject: TObject; MethodName: string) ;
   end;

var
   Form1: TForm1;

type
   TExec = procedure of object;

procedure TForm1.ExecMethod(OnObject: TObject; MethodName: string) ;
var
   Routine: TMethod;
   Exec: TExec;
begin
   Routine.Data := Pointer(OnObject) ;
   Routine.Code := OnObject.MethodAddress(MethodName) ;
   if NOT Assigned(Routine.Code) then Exit;
   Exec := TExec(Routine) ;
   Exec;
end;

procedure TForm1.CallMeByName(Sender: TObject) ;
begin
   ShowMessage(‘Hello Delphi!‘) ;
end;

procedure TForm1.Button1Click(Sender: TObject) ;
begin
   ExecMethod(Form1, ‘CallMeByName‘) ;
end;

时间: 2024-08-25 16:11:58

根据函数名称---函数指针--调用函数的相关文章

16周(指针调用函数)

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:16周(指针调用函数) *作者:王忠 *完成日期:2014.12.11 *版本号:v1.0 * *问题描述:按提示输入,通过指针调用函数,输出 *输入描述:1.2.3.4 *程序输出:输出各类 #include <iostream> using namespace std; void eat(); void sleep(); void hitdoudou(); void ru

第十六周 【项目3-用函数指针调用函数】

问题及代码: /* *Copyright (c) 2014,烟台大学计算机学院 *ALL right reserved *文件名:用函数指针调用函数 *作者:童宇 *完成日期:2014年12月16日 *版本号v1.0 *问题描述:用函数指针调用函数 *输入描述: *程序输出:用函数指针调用函数 */ #include <iostream> using namespace std; void eat(); void sleep(); void hitdoudou(); void run(void

数组和指针(2)----指针调用函数

#include <stdio.h>#include<stdlib.h>int add(int a, int b){ return a + b;}int Max(int a, int b){ int i; i=a > b ? a : b; return i;}int main(){ //指针指向函数 //普通写法 int i = add(5,6); printf("%d\n",i); //指针写法 int i1; int(*p)(int, int);//定

函数声明、 函数表达式 与立即调用函数表达式的比较

函数声明 函数声明创建将来代码调用的函数.函数可以在声明之前的位置被调用.代码样例如下: //可以在声明之前的位置被调用 var size=area(3,6); function area(width,height){ return width*height; }; //可以在声明之后的位置被调用 var size2=area(2,4); 函数表达式   将函数放在本该表达式待的位置,这称为函数表达式.在函数表达式中,经常使用匿名函数.代码样例如下 var area=function(width

python 定义函数 两个文件调用函数

在def_function.py文件里面写 #coding=utf-8 #定义函数 def hello(): print "hello world" 在test.py里面调用 #coding=utf-8 from def_function import hello #from def_function import * #导入该文件里的所有函数 #调用函数 hello() 在cmd下调用

Shell函数返回值、删除函数、在终端调用函数

Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数返回值,可以显式增加return语句:如果不加,会将最后一条命令运行结果作为返回值. Shell 函数返

Shell函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数

【Shell脚本学习22】Shell 函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数

用函数指针调用函数

#include <stdio.h> int main(void){     int n = 6;     int square(int num);      int (*fptr)(int);  //声明函数指针     fptr = square;   //初始化函数指针     printf("%d square is %d.\n", n, fptr(n));     return (0);  }  int square(int num){     return (n