利用反射机制动态调用方法

转载 2008年10月03日 20:11:00
 unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ObjAuto, StdCtrls;

type
{$MethodInfo ON}
TTestCall = class(TPersistent)
public
    function Add(X,Y: integer): integer;
    procedure Msg(s: string);
end;
{$MethodInfo OFF}

TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
tc:TTestCall;
mih: PMethodInfoHeader;
res:integer;
begin
tc := TTestCall.Create;
mih := Objauto.GetMethodInfo(tc,'Msg');
ObjAuto.ObjectInvoke(tc, mih, [1], ['orz...']);
tc.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
tc:TTestCall;
mih: PMethodInfoHeader;
res:integer;
begin
tc := TTestCall.Create;
mih := Objauto.GetMethodInfo(tc,'Add');
res:=ObjAuto.ObjectInvoke(tc, mih, [1,2], [10,20]);
ShowMessage(Inttostr(res));
tc.Free;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
end;

{ TTestCall }

function TTestCall.Add(X, Y: integer): integer;
begin
result := X+Y;
end;

procedure TTestCall.Msg(s: string);
begin
ShowMessage(s);
end;

end.

IOS开发反射和动态调用总结

IOS开发反射和动态调用总结
  • u011496891
  • u011496891
  • 2015年04月29日 19:17
  • 2278

OC反射机制-动态调用方法

// //  main.m //  OC反射机制-动态调用方法 // //  Created by Goddog on 15/1/13. //  Copyright (c...
  • HUXU981598436
  • HUXU981598436
  • 2015年01月13日 20:55
  • 1617

java 动态性之反射机制 详解 案例

1、反射机制 2、动态编译 3、动态执行javassript代码 4、动态字节码操作 动态语言 程序运行时,可以改变程序结构或变量类型。典型的语言: 1):Python、ruby、javasc...
  • qq_14996421
  • qq_14996421
  • 2016年06月06日 23:51
  • 2473

【点滴积累】在C#中使用反射动态调用类型成员

1.背景 学习C#的时候就知道使用反射可以对我们编程提供极大的便利(动态的获取信息、调用类型成员、创建实例等等),但是在实际的工作中直接使用反射的机会比较少,有印象的就是一次自己做的WinForm...
  • dyllove98
  • dyllove98
  • 2013年06月09日 21:08
  • 1000

通过反射机制调用某个类的方法

要通过反射机制调用某个类的方法,主要用到了下面这个方法: public Object invoke(Object obj,Object... args) 这个方法对带有指定参数的指定对象调用由此 ...
  • Handsome_fan
  • Handsome_fan
  • 2017年02月04日 14:27
  • 2898

Java反射机制与动态代理(二)

导读: 1. 代理模式 2. 静态代理 3. 动态代理 4. 小结 一、代理模式代理模式所涉及的角色有: - 抽象主题角色:声明了真实主题和代理主题的共同接口,这样一来在任何...
  • qq_29342837
  • qq_29342837
  • 2017年11月24日 00:06
  • 35

java反射获取方法以及调用方法

Java反射获取方法以及调用方法 获取方法 1.先找到获取方法所在类的字节码对象 2.找到需要被获取的方法 Class类中获取方法: public Method[] getMethods();//获取...
  • u014207606
  • u014207606
  • 2016年11月28日 22:55
  • 4995

java动态反射调用方法

比如说现在有一个类:package com.shangpin.model;class Function { public void print(String s, Integer i) { ...
  • garychenqin
  • garychenqin
  • 2015年08月12日 17:58
  • 589

Java反射机制(三):调用对象的私有属性和方法

一、 通过反射调用类中的方法 在正常qingk
  • zuiwuyuan
  • zuiwuyuan
  • 2014年09月29日 09:08
  • 2765

通过反射访问任意类的私有方法和属性

给出一个如下类: package test2; public class MathDemo {     private int m = 10;          private ...
  • a997208868
  • a997208868
  • 2015年08月31日 14:04
  • 2551
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用反射机制动态调用方法
举报原因:
原因补充:

(最多只允许输入30个字)